Linq to XML - 尝试选择多个节点

时间:2014-11-14 01:57:53

标签: c# xml linq

我正在使用与此接近的XML:

<?xml version="1.0"?>
<ROOT>
    <SECTION>
        <GROUP1>
            <NODE NAME="something" value="some value"/>
            <NODE NAME="something" VALUE="some value"/>
        </GROUP1>
        <GROUP2>
            <NODE NAME="something" value="some value"/>
            <NODE NAME="something" VALUE="some value"/>
        </GROUP2>
    </SECTION>
    <SECTION>
        <GROUP1>
            <NODE NAME="something" value="some value"/>
            <NODE NAME="something" VALUE="some value"/>
        </GROUP1>
        <GROUP2>
            <NODE NAME="something" value="some value"/>
            <NODE NAME="something" VALUE="some value"/>
        </GROUP2>
    </SECTION>
</ROOT>

我只想选择所有GROUP1和GROUP2元素以及LINQ查询。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

试试这个:

var doc = XDocument.Parse(xmlString);
var groups = doc.Descendants("SECTION").Elements().Where(e => e.Name.LocalName.StartsWith("GROUP"));
Console.Write(groups.Count());

要查找它来自哪个组,我们可以通过XElement的父级获取它。

答案 1 :(得分:0)

var doc = XDocument.Parse(xmlString);

var group1 = doc.Descendants("GROUP1");
var group2 = doc.Descendants("GROUP2");

是你所追求的?