正在将XML读取到数组中,不断出现错误
本文关键字:错误 数组 XML 读取 | 更新日期: 2023-09-27 18:25:21
我想获取一个XML文件,并将其数据放入C#中的数组中
我的代码:
XmlDocument XMLDoc = new XmlDocument();
XMLDoc.Load("C:/Scripts/example.xml");
string[] bans = XMLDoc.Descendants("ban").Select(element => element.Value).ToArray();
但是,我一直得到这个错误:
"System.Xml.XmlDocument"不包含的定义"Descendants"和不接受第一个的扩展方法"Descendents"未能找到类型为"System.Xml.XmlDocument"的参数(您是缺少using指令或程序集引用?)
如果相关的话,这是我的xml文件:
<championSelect>
<blue>
<ban order="1">Darius</ban>
<ban order="3">Elise</ban>
<ban order="5">Twisted Fate</ban>
<pick order="1">Gragas</pick>
<pick order="4">Shen</pick>
<pick order="5">Shyvanna</pick>
</blue>
<red>
<ban order="2">Jayce</ban>
<ban order="4">Zac</ban>
<ban order="6">Thresh</ban>
<pick order="2">Draven</pick>
<pick order="3">Ryze</pick>
</red>
</championSelect>
我认为这和后裔有关,但我不能肯定。我在这里尝试了很多关于堆栈溢出的其他解决方案,但都无济于事。如果必要,我欢迎另一种方法
您的LINQ看起来不错,但您使用的是XmlDocument
(来自System.Xml
命名空间)。要使LINQ工作,您需要使用XDocument
,它是System.Xml.Linq
命名空间的一部分:
var doc = XDocument.Load("C:/Scripts/example.xml");
string[] bans = doc.Descendants("ban")
.Select(element => element.Value)
.ToArray();
看起来可能缺少LINQ引用?尝试添加
Using System.Xml.Linq;
您得到这个错误是因为您应该使用XDocument类,它是System.XML.Linq namesapace 的一部分
http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx