如何在c#中选择特定的XML节点?

时间:2014-03-13 12:55:45

标签: c# xml linq-to-xml

XML,

 <A>
    <B  id="ABC">
      <C name="A" />
      <C name="B" />
      <C name="C" />
      <C name="G" />
    </B>
    <B id="ZYZ">
      <C name="1" />
      <C name="2" />
      <C name="3" />
      <C name="4" />
    </B>
  </A>

我只需要选择<C>个节点并分配给变量。

我使用了以下 c#代码无效,

var asdf = c.Elements("C");

asdf应该包含,

<C name="A" />
<C name="B" />
<C name="C" />
<C name="G" />
<C name="1" />
<C name="2" />
<C name="3" />
<C name="4" />

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:2)

您需要Descendants喜欢:

var cNodes = document.Descendants("C");

输出:

foreach (var item in cNodes)
{
    Console.WriteLine(item);
}

你会得到:

<C name="A" />
<C name="B" />
<C name="C" />
<C name="G" />
<C name="1" />
<C name="2" />
<C name="3" />
<C name="4" />

答案 1 :(得分:2)

此次运行:

XElement x = XElement.Parse("your_xml_string");

var asdf=x.Elements("B").Elements("C");