Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ XML获取父节点的子节点_C#_Xml_Linq - Fatal编程技术网

C# LINQ XML获取父节点的子节点

C# LINQ XML获取父节点的子节点,c#,xml,linq,C#,Xml,Linq,请在下面查找xml数据。我希望使用LINQ查询获得键为Sub1和Sub2的节点,因为我知道父节点具有url=、title=item 1和key=item 1 <root> <node title="Partner" url="" description="99" roles="GuidIdHere"></node> <node title="Test" url="" description="51" roles="8b0c0c4f" key="sampl

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

<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>

谢谢

我只需要将doc.Root.substands更改为doc.substands,但在其他方面这是完美的!谢谢
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;