如何根据标签的属性名称在两个标签之间选择xml文件中的所有节点?

问题描述 投票:0回答:1

我想在组标签之间选择所有具有我想要的名称的节点,但是我不确定如何执行此操作。下面是一个示例,其中我想选择组名称为“ DefaultSettings”的每个节点。

<group name="DefaultSettings">
    <tag></tag>
    <tag></tag>
    <tag></tag>
    <tag></tag>
    <tag></tag>
    <tag></tag>
</group>

<group name="NewSettings">
    <tag></tag>
    <tag></tag>
    <tag></tag>
    <tag></tag>
    <tag></tag>
    <tag></tag>
</group>

我目前正在尝试使用XmlDocument对象来选择所有节点,但是由于我不想选择名称为NewSettings的其他组,因此我不确定如何使Xpath正常工作。关于使用哪种Xpath公式或任何其他方式的任何建议将不胜感激。

c# xml dom xpath
1个回答
0
投票

假设这是您的XML

<groups>
   <group name="DefaultSettings">
      <tag />
      <tag />
      <tag />
      <tag />
      <tag />
      <tag />
   </group>
   <group name="NewSettings">
      <tag />
      <tag />
      <tag />
      <tag />
      <tag />
      <tag />
   </group>
</groups>

您可以尝试这样的事情:

XmlDocument xml = new XmlDocument();
xml.LoadXml(str);  // suppose that str string contains "<groups>...</groups>"

XmlNodeList xnList = xml.SelectNodes("/groups/group[@name='DefaultSettings']");
foreach (XmlNode xn in xnList)
{
  Console.WriteLine(xn.InnerText);
}
© www.soinside.com 2019 - 2024. All rights reserved.