我有一个xpath来获取文本节点中的所有文本,如下所示:
<text>I want this text</text>
但我不想从包含如下属性的节点获取文本:
<text name="contact">I DO NOT want this text</text>
排除具有&#34;名称&#34;的文本节点。属性应该有效,但我更喜欢排除具有任何属性的文本节点更健壮。有没有办法做到这一点?
下面的Xpath可以抓取所有文本,除了它还可以抓取我想要排除的内容。
//*[local-name()='text'][string-length(normalize-space(.))>0]
答案 0 :(得分:1)
not(@*)
谓词应该可以解决问题:
//*[local-name()='text' and not(@*)][string-length(normalize-space(.))>0]
这应该只返回没有任何属性的text
个节点
答案 1 :(得分:1)
排除具有任何属性的文本节点更健壮
短 xpath
表达式:
//text[count(@*)=0]