0

我想获取带有内部文本的页面上所有链接的集合。

这些是有效的案例:

<a>Foo</a>
<a><span>Bar</span></a>

这些是无效的情况:

<a></a>
<a><span></span></a>

我努力了:

//a[text()]但这忽略了跨度的情况

//a[not(text()='')]但这并不能过滤掉空壳

有什么方法可以检查是否存在text()=NULL

笔记:

我知道我可以使用document.links;然后手动过滤,但我宁愿只有一个干净的表达。

4

2 回答 2

2

虽然@Seanny123的回答是正确的,但我会这样做:-

HTML:

<a>Foo</a>
<a><span>Bar</span></a>
<a></a>
<a><span></span></a>

路径:

//a[string()]
于 2013-09-06T04:33:26.073 回答
1

正确的表达是:

//a[normalize-space()]

感谢这个问题启发了我。

于 2013-09-06T03:07:23.190 回答