我坚持写一个Linq到XML选择,希望你能帮助我。
我的XML如下所示:
<myXML>
<parent>
<child name="ID">0</child>
<child name="Name">Test 1</child>
</parent>
<parent>
<child name="ID">1</child>
<child name="Name">Test 2</child>
</parent>
<parent>
<child name="ID">0</child>
<child name="Name">Test 3</child>
</parent>
<parent>
<child name="ID">2</child>
<child name="Name">Test 4</child>
</parent>
</myXML>
我尝试选择所有父元素,其中包含属性ID = 0的子元素,以便我得到以下内容:
<parent>
<child name="ID">0</child>
<child name="Name">Test 1</child>
</parent>
<parent>
<child name="ID">0</child>
<child name="Name">Test 3</child>
</parent>
XML非常大,因此选择应该是高性能的。谢谢你的帮助!!!
此致
答案 0 :(得分:0)
试试这个:
var query =
from p in xd.Root.Elements("parent")
where p
.Elements("child")
.Any(c =>
c.Attribute("name").Value == "ID"
&& c.Value == "0")
select p;
答案 1 :(得分:0)
将文档加载/解析为XDocument
后,为了提高性能,我会使用XPath
,如下所示
var elements = document
.XPathSelectElements("/myXML/parent[normalize-space(child[@name='ID'])='0']");
即。 “查找包含parent
元素的所有child
元素,其中属性名称为ID
,修剪后的值为0”