如何获取子节点属性



我有 xml 数据,我想找到一个特定的节点/属性(不确定这里的适当定义),然后从那里选择其子节点的属性。

<Random>
<RandomChild ID="1" Name="First" />
</Random>
<Parent>
<Child ID="1" Name="First" />
<Child ID="2" Name="Second"/>
<Child ID="3" Name="Third"/>
<Child ID="4" Name="Fourth"/>
<Child ID="5" Name="Fifth"/>
<Child ID="6" Name="Sixth"/>
<Child ID="7" Name="Seventh"/>
<Child ID="8" Name="Eighth"/>
<Child ID="9" Name="Ninth"/>
</Parent>
<Random2>
<RandomChild2 ID="1" Name="First" />
</Random2>

我想要"父"中的东西。正在使用的属性名称(ID和Name)出现在这个xml的其他地方,所以我认为最有效的做法是找到"父"节点,然后选择其子节点的属性(如果有更有效的方法让我知道)。

我尝试了各种查询,但它们都无法初始化。我不是在尝试调试特定的查询,而是希望对如何实现我所追求的目标进行一些澄清。我在这里读过十几个类似的问题,但它们似乎都是针对特定情况的答案的例子,我无法弄清楚我想象的相对简单的过程。

XDocument doc = XDocument.Load("input.xml");
foreach (XElement child in doc.Descendants("Parent").Elements("Child"))
{
  Console.WriteLine("Id: {1}, Name: {2}", child.Attribute("ID").Value, child.Attribute("Name").Value);
}

最新更新