[英]Xpath for all elements in the document without text node descendants?
我对XPath并不完全熟悉。 我进行了广泛的搜索,仅找到了针对直系孩子的解决方案。
要求是选择一个元素,该元素不包含任何子代,孙代,孙代或家族树中存在文本节点的任何子代。
一个简单的例子是:
<div><p></p><p><span></span></p><p><span>notemptychild</span></p><p>notempty</p></div>
如果我运行以下XPath查询:
//p[not(text())]
它给出以下输出:
Element='<p/>'
Element='<p>
<span/>
</p>'
Element='<p>
<span>notemptychild</span>
</p>'
(我正在使用freeformatter xpath工具: http ://www.freeformatter.com/xpath-tester.html)
第一个元素是有效选择。
第二个元素是有效选择。
第三个元素不是有效的选择,因为p
的子span
有一个文本节点。
我希望我不要因为复杂而提出这个问题。
这个XPath
//*[not(.//text())]
将选择文档中没有文本节点后代的所有元素。
这个XPath
//*[not(.//text()[normalize-space()])]
这样做相同,但允许仅由空格组成的文本节点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.