LINQ XML获取父节点的子节点

时间:2011-12-04 17:14:35

标签: c# xml linq

请在下面找到xml数据。我想使用LINQ查询获得具有键“Sub1”和“Sub2”的节点,因为我知道父节点具有url =“#”,title =“item 1”和key =“Item1”。

<root>
<node title="Partner" url="" description="99" roles="GuidIdHere"></node>
<node title="Test" url="" description="51" roles="8b0c0c4f" key="sample">
    <node url="#" title="item 1" description="" key="Item1">
        <node url="#" title="Sub 1" description="" key="Sub1" />
        <node url="#" title="Sub 2" description="" key="Sub2" />
    </node>
    <node url="#" title="item 2" description="" key="Item2" />
    <node url="#" title="item 3" description="" key="Item3" />
</node>
</root>

谢谢!

1 个答案:

答案 0 :(得分:0)

var result = from x in doc.Root.Descendents("node")
             where (string)x.Attribute("url") == "#"
                && (string)x.Attribute("title") == "item 1"
                && (string)x.Attribute("key") == "Item1"
             from y in x.Elements("node")
             where (string)x.Attribute("key") == "Sub1"
                || (string)x.Attribute("key") == "Sub2"
             select y;
相关问题