鉴于此:
<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>
...
如何在element_5中选择不包含'@'的所有element_1实例?
答案 0 :(得分:15)
element_1[not(contains(element_3/element_4/element_5,'@'))]
这被解释为
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 @
))
]
答案 1 :(得分:7)
我的XPath有点生疏,但是这样:
//element_1[.//element_5[not(contains(., "@"))]]
答案 2 :(得分:4)
如何选择所有实例 element_1不包含'@' 在element_5?
使用强>:
//element_1[not(.//element_5[contains(.,'@')])]
在英语中,这意味着:选择文档中没有"element_1"
后代的所有"element_5"
元素,其字符串值包含字符串'@'
。
我只使用//
缩写,因为XML文件的结构不清楚。
我始终建议尽可能避免使用//
缩写,否则可能导致XPath评估效率非常低。
答案 3 :(得分:0)
element1[not(contains(.//element_5, '@'))]