【发布时间】:2017-05-01 15:11:47
【问题描述】:
我对 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 中有一个文本节点。
我希望我没有把问题弄得太复杂。
【问题讨论】: