【发布时间】:2015-07-30 12:25:57
【问题描述】:
我在选择只有空格的元素时遇到问题。
给定 html:<html><body><p> </p></body></html>
使用 :empty 不会选择我假设的 p,因为其中有一个 " " 文本节点
但是,:matchesOwn(^\\s+$) 也不会选择它,因为 JSoup 似乎在针对正则表达式模式测试文本之前对文本执行了 trim()。
:matchesOwn(^$) 会选择它,但也会选择没有非空文本节点的元素
也许我错过了什么?
:matchesOwn 根本不应该修剪,因为它使用正则表达式并且应该评估整个文本
【问题讨论】:
-
如果没有某种解决方法,这将不起作用(至少在当前版本中)。正如您所说:空白已修剪 - 可以使用
element.text().isEmpty()进行检查,这将返回true。最好的解决方案是在Jsoup's Github issuesopen an issue。 -
@ollo 这是一个涉及 Jsoup API 的解决方法:stackoverflow.com/a/35012778/363573。
-
感谢您的提示。