编辑:我的问题是由一个没有完全实现 XPath 标准的工具引起的。我的尝试
//key@
应该奏效(见评论和答案),它不起作用的原因是该工具只显示第一个结果。
我的 XML 如下所示:
<Document id="someIdhere" token="123-456-789" created-by="john_doe" created-at="2020-05-27T10:04:28.244+0000" last-modified-by="jane_doe" last-modified-at="2020-07-30T09:27:59.440+0000">
<somedata/>
<somemoredata/>
<entries>
<entry key="resourceName">resourceLocation</entry>
<entry key="foo">bar</entry>
<entry key="somekey">somevalue</entry>
<entry key="keyname">keyvalue</entry>
<entry key="keyname1">value1</entry>
</entries>
<encryptedEntries/>
</Document>
我正在寻找所有key
属性的值(例如'resourcename'、'foo'等);不是<entry>
节点的值。我无法提前知道会有多少条目,也不知道内容是什么。
我尝试了以下方法:
//@*
-> 给出所有属性,不仅是key
//entries/@*
-> 不返回
//entry@*
-> 不返回
//@key
-> 只返回第一个结果
//entries/key[*]
-> 不返回
//entry@key
-> 不返回
//entry@key=*
-> 不返回
我可能也尝试过其他人,但这些是我能记住的。如果有任何区别:XPath 由 Xebialabs 的 XLRelease 中的“XML Webhook”任务执行。