我需要转到这个XML结构中的第一个节点进行一些更改:
<root-node>
<child mandatory="val">
...
</child>
<child mandatory="val" optional1="opt1">
...
</child>
<child mandatory="val" optional1="opt2" optional2="opt3">
...
</child>
</root-node>请注意,所有子对象都有一个强制属性,该属性在所有情况下都具有相同的值,外加一个或多个可选属性。但如果我在//root-node/child[@mandatory='val']上执行XPath,我担心我可能也会得到对其他节点的引用,而我不想接触这些节点。
有没有更具体的方法来排除结构中具有特定属性的节点?
发布于 2013-06-17 16:13:02
以下XPath将返回mandatory属性等于val且未定义optional1属性的child元素:
//child[@mandatory='val' and not(@optional1)]如果您只需要第一个元素,那么只需将[1]添加到表达式:
root-node/child[@mandatory='val' and not(@optional1)][1]https://stackoverflow.com/questions/17142904
复制相似问题