【发布时间】:2014-07-07 20:51:31
【问题描述】:
我想用 LINQ 从 xml 文件中获取一些数据,但我不明白。 这是xml文件:
<Data>
<Customer>
<Name>bla1</Name>
<d1>
<IP>888.888.888.888</IP>
<UserLogin>userxy</UserLogin>
<UserPw>pwxy</UserPw>
</d1>
<d2>
<IP>889.889.889.889</IP>
<UserLogin>userzp</UserLogin>
<UserPw>pwzp</UserPw>
</d2>
</Customer>
</Data>
我想得到例如特定客户的所有 IP 到 List<string>,但我的问题是处理不同的元素 d1、d2...dn。因为程序在运行时不知道确切的名称。
显然我的尝试是错误的..
XDocument root = XDocument.Load(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Xml.xml");
List<string> IP = new List<string>();
IP = root.Descendants("Customer").Descendants("Name")
.Where(x => x.Element("Name").Value == name)
.Select(x => x.Element("Name").Descendants("IP").ToList<string>();
【问题讨论】:
-
我认为这是一个 XY 问题 - 您不应该将数据存储在并行集合中。创建一个具有 3 个属性的类:
IP、UserLogin和UserPw,并将其存储在该类实例的列表中。在此处阅读更多信息:msmvps.com/blogs/jon_skeet/archive/2014/06/03/… -
您好,感谢您的回答!但老实说,我不明白,如何以这种方式解决它。问题仍然是 LINQ 部分。或者我必须重新组织xml文件吗? :confuse: 什么是“XY”问题?
-
真丢脸,我用谷歌搜索了“c# xy 问题”。谢谢:D
标签: c# xml linq list linq-to-xml