Sne*_*kse 12 xml xpath filtering
鉴于这种:
<element_1>
<element_2>Text</element_2>
<element_3>
<element_4>
<element_5>Text with @ in Value</element_5>
</element_4>
<element_4>
<element_5>Test Text</element_5>
</element_4>
</element_3>
<element_6>
<element_7>
<element_8>0</element_8>
...
Run Code Online (Sandbox Code Playgroud)
如何在element_5中选择不包含"@"的element_1的所有实例?
Wel*_*bog 15
element_1[not(contains(element_3/element_4/element_5,'@'))]
Run Code Online (Sandbox Code Playgroud)
这被解释为
element_1[ #select elements named "element_1"
not(contains( #that do not contain
element_3/element_4/element_5, #children in this hierarchy
'@' #the character @
))
]
Run Code Online (Sandbox Code Playgroud)
我的XPath有点生疏,但是像这样:
//element_1[.//element_5[not(contains(., "@"))]]
Run Code Online (Sandbox Code Playgroud)
如何选择 element_5 中不包含“@”的所有 element_1 实例?
使用:
//element_1[not(.//element_5[contains(.,'@')])]
Run Code Online (Sandbox Code Playgroud)
在英语中,这意味着:选择"element_1"文档中所有没有"element_5"后代的元素,其字符串值包含字符串'@'。
我使用//缩写只是因为 XML 文件的结构不清楚。
我总是建议在//可能的情况下始终避免使用缩写,否则这可能会导致 XPath 评估的效率非常低。
| 归档时间: |
|
| 查看次数: |
12842 次 |
| 最近记录: |