考虑以下XML
<xml>
<tag/>
<tag version="2.1"/>
</xml>
我想要一个XPath 1.0表达式,如果我搜索版本2.1则返回 <tag version="2.1"/>
,如果我搜索版本2.2则返回 <tag/>
.
到目前为止,我已经尝试过了
/xml/tag[@version = '%version%' or not(@version)]
其中 %version%
是一个可以是2.1或2.2的字符串,但如果 %version%
是2.1,它将返回两个节点 .
2 回答
你可以使用
|
(或)这样的东西要么
xml
没有带有version="2.1"
的tag
,那么返回没有version
属性的tag
或者,如果
xml
确实包含带有version="2.1"
的tag
,则返回这些那就是你的情况
作为xpath 2.0(如果相关)替代非常好的@paul答案,你可以使用
RESP .