所有节点都有一个属性

时间:2010-11-29 22:07:36

标签: xml xpath

我是否可以使用某种xpath语法来获取下面xml中存在identifierref的所有节点(包括子节点)?我一直在尝试XmlNodeList nodeList = xmlDoc.SelectNodes("//@identifierref");之类的东西,但是它不会返回项目节点下面的子标题节点。理想情况下,我想获得一个节点列表,该列表可以访问存在identifierref的项节点以及它们下面的标题节点。下面是我正在使用的xml。提前谢谢。

<organization xmlns:adlcp="test1" xmlns="test2">
      <title>1.2 Tester</title>
      <item identifier="C2_LESSON1">
        <title>TestName1</title>
        <item identifier="I_SCO1" identifierref="SCO01">
          <title>Tester SCO 1</title>
        </item>
      </item>
      <item identifier="C2_LESSON2">
        <title>TestName2</title>
        <item identifier="I_SCO2" identifierref="SCO01">
          <title>Tester SCO 2</title>
        </item>
      </item>
      <item identifier="C2_LESSON3">
        <title>TestName3</title>
        <item identifier="I_SCO3" identifierref="SCO01">
          <title>Tester SCO 3</title>
        </item>
      </item>
    </organization>

1 个答案:

答案 0 :(得分:1)

  

我想获得一个有的节点列表   访问具有的项目节点   identifierref存在和标题   他们下面的节点

//item[@identifier]

以上选择文档中具有item属性的所有identifier元素。

如果您还想选择title元素子项。

//item[@identifier]|//item[@identifier]/title

但节点集结果顺序取决于主机语言(文档顺序最多的工作)。也没有&#34;分组&#34;功能:你不能遍历每一个,因为可能缺少一些title

因此,首先使用第一个XPath表达式,然后迭代item使用任何DOM方法或相对XPath表达式获取title

title