c# - 将 XML 读入数组,不断出现错误

标签 c# xml arrays parsing

我想获取一个 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' does not contain a definition for 'Descendants' and no extension method 'Descendants' accepting a first argument of type 'System.Xml.XmlDocument' could be found (are you missing a using directive or an assembly reference?)

这是我的 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();

关于c# - 将 XML 读入数组,不断出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17935063/

相关文章:

c# - 如何私下使用接口(interface)

javascript - 如何连接javascript和c#

css - Chrome 72 是否破坏了 css 背景 svgs 的 'data:image/svg+xml;utf8'?

xml - 在go中用xml节点名序列化int

javascript - 使用 .length 通过 concat 数组检查 JQuery 中是否存在元素

javascript - 如何在每次循环迭代中一个一个地移动数组的 3 个元素?

c# - 最佳实践 - 何时重载?

c# - 从套接字读取传入数据?

C# 设置管理

arrays - 如何迭代多个 Perl 数组