在这个xml中,我想匹配,包含'match'的元素(random2元素)
<root>
<random1>
<random2>match</random2>
<random3>nomatch</random3>
</random1>
</root>
Run Code Online (Sandbox Code Playgroud)
好的,到目前为止我有:
//[re:test(.,'match','i')] (with re in the proper namespace)
Run Code Online (Sandbox Code Playgroud)
这会返回random2,random1和root ...我想只获得"random2"
有任何想法吗?
Mad*_*sen 151
您是否要查找包含 "匹配"或等于 "匹配"的元素?
这将找到具有等于'match'的文本节点的元素(由于前导空格和尾随空格而不匹配任何元素random2):
//*[text()='match']
Run Code Online (Sandbox Code Playgroud)
在删除前导和尾随空格(匹配random2)后,这将找到具有等于"匹配"的文本节点的所有元素:
//*/text()[normalize-space(.)='match']/parent::*
Run Code Online (Sandbox Code Playgroud)
这将找到文本节点值中包含"匹配"的所有元素(匹配random2和random3):
//*[contains(text(),'match')]
Run Code Online (Sandbox Code Playgroud)
此XPATH 2.0解决方案使用matches()函数和正则表达式模式,该模式查找包含"匹配"的文本节点,并从字符串开头(即^)或字边界(即\W)开始,并以字符串末尾结束(即$)或字边界.第三个参数i评估不区分大小写的正则表达式模式.(匹配random2)
//*[matches(text(),'(^|\W)match($|\W)','i')]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126125 次 |
| 最近记录: |