jsoup的Element.hasText方法的文档说:
测试此元素是否包含任何文本内容(不仅仅是空格)。
但以下示例另有说明:
String html1 = "<html><!-- no text here --></html>";
String html2 = "<html><!-- this is text --> </html>";
System.out.println(Jsoup.parse(html1).hasText());
System.out.println(Jsoup.parse(html2).hasText());
输出
false
true
我希望
false
false
有没有让Jsoup将
视为空格?
答案 0 :(得分:2)
Character.isWhitespace()
来确定文本是否包含除空格之外的内容。无法更改(配置)此行为。 Character.isWhitespace()
Javadoc说:
当且仅当它满足以下条件之一时,字符才是Java空白字符:
- 它是一个Unicode空格字符(SPACE_SEPARATOR,LINE_SEPARATOR或PARAGRAPH_SEPARATOR),但不是也是一个不间断的空格(' \ u00A0 ','\ u2007' ,'\ u202F')。
所以你是独立的。
你可以做什么。像
org.jsoup.helper.StringUtil.isBlank(element.ownText().replaceAll("\u00A0", ""));
StringUtil.isBlank(String)
中使用了 Element.hasText()
,因此您将拥有相同的行为,但所有不可破坏的空格字符都将被删除。