2

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' の定義が含まれておらず、タイプ 'System.Xml.XmlDocument' の最初の引数を受け入れる拡張メソッド 'Descendants' が見つかりませんでした (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>

.Descendants に関係していると思いますが、はっきりとは言えません。ここでスタックオーバーフローに関する他の多くのソリューションを試しましたが、役に立ちませんでした。必要に応じて別のアプローチを歓迎します

4

3 に答える 3

3

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();
于 2013-07-29T22:14:38.760 に答える
0

おそらく、LINQ 参照が欠落しているように見えますか? 追加してみる

Using System.Xml.Linq;  
于 2013-07-29T22:12:55.590 に答える
0

System.XML.Linq 名前空間の一部である XDocument クラスを使用する必要があるため、このエラーが発生しています。

http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx

于 2013-07-29T22:15:42.747 に答える