XPath选择所有属性和值

时间:2018-09-06 21:42:58

标签: xpath

我正在使用一些XML,它将所有数据保留在属性中。我需要提取它来处理数据。所以我们有这样的东西:

<data>
  <level1>
    <level2 att1="1">
      <level 3>
        <level 4 att2="a" att3="b" att4="c" />
      </level 3>
      <level 3>
        <level 4 att2="1" att3="2" att4="3" />
      </level 3>
    </level 2>
    <level 2 att1="2">

因此,我需要第4级条目及其值的所有属性,但仅需要att1 = 1的第2级条目。我是XPath的新手,所以我还没有解决。到目前为止,我想出的最好的方法是:

/data/level1/level2[@att1='1']/level3/level4[@*]

但是返回空数据。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

要获取所有所需的属性值,只需对XPath表达式进行如下更改(删除最后一个谓词以直接访问属性):

p2=[0,1,0]

遍历此表达式的节点集会为您提供所有所需的值,如果需要,还可以提供其属性的名称。