XML解析,跪求大侠解决!!!(高分)
时间:2011-12-23
来源:互联网
<root> <List> <Item> <IP>192.168.11.13</IP> <IP>192.168.11.14</IP> </Item> <Item> <IP>192.168.11.16</IP> <IP>192.168.11.17</IP> </Item> </List> </root>
xml内容如上。
最终需要将得到的内容保存到List<string>当中。
最后要得到的结果是:
192.168.11.13,192.168.11.14为一条数据,插入到List<string>当中
192.168.11.16,192.168.11.17为一条数据,插入到List<string>当中
最终List<string>中的大小为2个。
求解!!!!!!!多谢大侠帮助!
作者: xwguan 发布时间: 2011-12-23
作者: mabaolin 发布时间: 2011-12-23
XElement xeRoot = XElement.Parse("你的XML数据"); XElement xeList = xeRoot.Element("List"); List<String> list = new List<String>(); foreach (XElement xeItem in xeList.Elements("Item")) { String ips = ""; foreach (XElement xeIP in xeItem.Elements("IP")) { if (!String.IsNullOrEmpty(ips)) { ips += ","; } ips += xeIP.Value; } list.Add(ips); }
作者: mayswind 发布时间: 2011-12-23
List<string> ss = new List<string>(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath("~/test.xml")); XmlNodeList items = xmlDoc.SelectNodes(@"//Item"); foreach (XmlNode item in items) ss.Add(item.ChildNodes[0].InnerText + "," + item.ChildNodes[1].InnerText); foreach (string s in ss) Response.Write(s + "<br/>");
输出:
192.168.11.13,192.168.11.14
192.168.11.16,192.168.11.17
作者: dalmeeme 发布时间: 2011-12-23
/// <summary> /// 获取IP list /// </summary> /// <param name="xmlFileName">xml文件名</param> /// <returns></returns> private List<string> GetList(string xmlFileName) { List<string> _list = new List<string>(); XmlDocument doc = new XmlDocument(); doc.Load(xmlFileName); try { XmlNode xn = doc.SelectSingleNode("root"); XmlNode xn2 = xn.SelectSingleNode("List"); XmlNodeList xns = xn2.SelectNodes("Item"); foreach (XmlNode xnItem in xns) { XmlNodeList xnsIP = xnItem.SelectNodes("IP"); if (xnsIP.Count > 0) { string ip = string.Empty; foreach (XmlNode xnIp in xnsIP) { ip += xnIp.InnerText + ","; } _list.Add(ip.Remove(ip.Length - 1, 1)); } } } catch { _list = null; } return _list; }
作者: liao_ken 发布时间: 2011-12-23
C# code
XElement xeRoot = XElement.Parse("你的XML数据");
XElement xeList = xeRoot.Element("List");
List<String> list = new List<String>();
forea……
不好意思额,少说了点要求。
要求传入的节点为/root/list
而并不知道是Item或者IP,也许是其他的节点名称,但是格式是一样的。
即上面的xml也有可能是:
XML code
<root> <List> <Item1> <IP1>192.168.11.13</IP1> <IP1>192.168.11.14</IP1> </Item1> <Item1> <IP1>192.168.11.16</IP1> <IP1>192.168.11.17</IP1> </Item1> </List> </root>
作者: xwguan 发布时间: 2011-12-23
List<string> ss = new List<string>(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath("~/test.xml")); XmlNodeList items = xmlDoc.SelectNodes(@"/root/List/*"); //注意元素名称大小写 foreach (XmlNode item in items) ss.Add(item.ChildNodes[0].InnerText + "," + item.ChildNodes[1].InnerText); foreach (string s in ss) Response.Write(s + "<br/>");
作者: dalmeeme 发布时间: 2011-12-23
C# code
List<string> ss = new List<string>(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath("~/test.xml")); XmlNodeList items = xmlDoc.SelectNodes(@"/root/List/*"); //注意元素名称大小写 string ip = ""; foreach (XmlNode item in items) { foreach (XmlNode child in item.ChildNodes) ip += child.InnerText + ","; ss.Add(ip.TrimEnd(',')); ip = ""; } foreach (string s in ss) Response.Write(s + "<br/>");
作者: dalmeeme 发布时间: 2011-12-23
C# code
var xml = @"<root> <List> <Item> <IP>192.168.11.13</IP> <IP>192.168.11.14</IP> </Item> <Item> <IP>192.168.11.16</IP> <IP>192.168.11.17</IP> </Item> </List> </root>"; var xdoc = XDocument.Parse(xml); var list = xdoc.Descendants("Item").Select(x => string.Join(",", x.Descendants("IP").Select(i => i.Value).ToArray())); foreach(var item in list) Console.WriteLine(item);
作者: fangxinggood 发布时间: 2011-12-23
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28