0

いくつかのタグを取得しようとしているこのxmlファイルがあります。
これが...特定の値を持つ特定の属性を持つタグを抽出したい...

これが例です

<root>
    <input class="x">Data</input>
    <input>Data2</input>
    <input name="y">Data3</input>
    <input class="z">Data4</input>
</root>

属性「class」を持つすべての「input」タグを取得したいと思います。

List<XElement> selected = xmlDoc.Descendants("input").Where(t => t.Element("input").Attributes("class") != null).ToList();

しかし、ラムダ式でnull参照例外が発生します...助けていただけませんか?

4

2 に答える 2

0

あなたはこれが欲しいでしょう

List<XElement> selected = xmlDoc.Descendants("input").Where(t => t.Attribute("class") != null).ToList();

入力ノード内の入力ノードを見ようとしていました。

于 2013-02-10T14:19:05.170 に答える
0

t.Attributes("class")null を返すことはありません。t.Attribute("class")代わりに (または)を使用し.Where(t => t.Attributes("class").Any())ます。

あなたも必要ありませんt.Element("input")

var selected = xmlDoc.Descendants("input")
                      .Where(t => t.Attribute("class") != null)
                      .ToList();

または単に

var selected = xmlDoc.XPathSelectElements("//input[@class]").ToList();

XPATH の助けを借りて

于 2013-02-10T14:21:04.400 に答える