簡體   English   中英

如何選擇具有特定子節點的父節點?

[英]how to select a parent node having a specific child node?

這是我的XML

<A>
    <B id = "1">
        <R>
        <C id="ABC" />
    </B>
    <B id = "2" >
        <R>
        <C id="ABC" />
    </B>
    <B id = "3" >
        <R>
        <C id="XYZ" />
    </B>
    <B id = "4">
        <R>
    </B>
    <B id = "5">
        <R>
    </B>
 </A>

我只需要選擇包含子元素<C> <B>節點,輸出應該像這樣,

<B id = "1">
        <R>
        <C id="ABC" />
</B>
<B id = "2" >
        <R>
        <C id="ABC" />
</B>
<B id = "3" >
        <R>
        <C id="XYZ" />
</B> 

Descendants("B").Descendants("C")沒有幫助。

任何幫助表示贊賞!

XElement xml = XElement.Parse("xmlData");//or load...
var bElements = xml.Descendants("B").Where(x => x.Descendants("C").Count() > 0);

或者,按照Selman22的建議,您可以使用:

var bElements = xml.Descendants("B").Where(x => x.Descendants("C").Any());
XElement element = XElement.Parse("data.xml");
var query = element.Descendants("C")
            .Where(c => c.Parent.Name == "B")
            .Select(c => c.Parent).Distinct()
            .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM