如何使用XPath选择无子元素的<p>标签?
筛选无元素子节点的
<p>标签解决方案 问题场景
给定HTML结构:
<div> <p> text 1 </p> <p> <a href="http://www.google.com">text 2</a> </p> <p> text 3 </p> <p> text 4 </p> </div>
使用//p会选中所有<p>标签,但需要仅获取不包含任何元素子节点的<p>(即对应text 1、text 3、text 4的节点)。
可行XPath表达式
表达式1:
//p[not(*)]
直接判断当前<p>节点下不存在任何元素类型的子节点,精准排除包含<a>的目标节点。表达式2:
//p[count(*)=0]
通过统计子元素数量为0实现筛选,逻辑和表达式1完全一致,只是写法不同。
注意事项
上述表达式仅判断元素子节点,如果<p>内只有文本或空白字符(换行、空格等),依然会被选中,符合需求场景。
内容的提问来源于stack exchange,提问作者cosmos7263
相关产品推荐
相关产品推荐

