检索具有指定值的所有属性节点(无论属性名称是什么)的xpath是什么?

时间:2015-06-15 10:37:40

标签: java xml xpath

以下是xml示例。

<library>
    <book id="aaa">
      <title id="bbb">Harry Potter and the Half Blood Prince</title>
      <author id="ccc" ref="zzz"/>
    </book>
    <book id="ddd">
      <title id="eee">Harry Potter and the Philosophers Stone</title>
      <author id="fff" ref="zzz"/>
    </book>
    <author-details id="zzz">
      <firstName id="ggg">Joanne</firstName>
      <lastName id="hhh"/>Rowling</lastName>
    </author-details>
</library>

此示例中还有更多书籍,还有许多作者详细信息。 我想要的是检索所有属性节点,具有指定值的属性名称。
例如,在上面的示例中,我希望xpath返回以下节点。 (所有属性节点包含'zzz'的值,什么是属性名称。)

    来自第一本书节点的
  1. ref =“zzz”。
  2. 来自第二本书节点的
  3. ref =“zzz”。
  4. 来自作者详细信息节点的
  5. 和,id =“zzz”。
  6. 我正在编写Java代码,并希望将id ='zzz'的值更改为其他值。

1 个答案:

答案 0 :(得分:2)

//@*为您提供所有属性节点,添加谓词//@*[. = 'zzz'],并且您拥有值为zzz的所有属性节点。