当前位置: 首页 > 知识库问答 >
问题:

Jsoup元素。hasText返回true for

齐迪
2023-03-14

jsoup元素的文档。hasText方法说:

测试此元素是否有任何文本内容(不仅仅是空白)。

但是下面的例子不是这样说的:

    String html1 = "<html><!-- no text here --></html>";
    String html2 = "<html><!-- this is text -->&nbsp;</html>";

    System.out.println(Jsoup.parse(html1).hasText());
    System.out.println(Jsoup.parse(html2).hasText());

输出是

false
true 

我希望

false 
false

有没有办法让JTAY考虑<代码>

共有1个答案

丁翰海
2023-03-14

不,你不能这么做。JSouc使用Character.isWhitesspace()来确定文本是否包含除空白之外的内容。这种行为无法更改(配置)。Javadoc说:

当且仅当字符满足以下条件之一时,它才是Java空白字符:

  • 它是一个Unicode空格字符(空格分隔符、行分隔符或段落分隔符),但也不是一个不间断空格(“\u00A0'、“\u2007'、“\u202F”)

所以你只能靠自己了。

你可以做smth。喜欢

org.jsoup.helper.StringUtil.isBlank(element.ownText().replaceAll("\u00A0", ""));

StringUtil.isBlank(String)用于Element.hasText(),因此您将具有相同的行为,但所有不可打破的空格字符将被删除。

 类似资料:
  • 尽管这听起来可能太基本了,但我想问一下如何使用JSoup从doc中删除元素。 我试图寻找它,但没有成功。 问题是: 这工作罚款。但是我相信一次又一次地选择相同的元素可能会证明内存饥饿。有可能吗? //尝试从doc中选择myNewElements。

  • 这工作正常: 我得到了一个非常好的JSON数组和对象。 现在的问题是,我喜欢将我的数据作为有效载荷放入响应中,以便能够设置标头和状态,或者返回一个错误对象作为有效载荷。但是不管用。 Mai 16,2012 7:00:35 PMorg.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor写响应错误消息警告:未找到响应类ArrayList的消息正文编写器。

  • 我正在与JSoup合作,以下是我的代码: 这是页面: 我想得到以下元素的值: itemPrice,_18gRm, itemtitle,_2FRXm 谢谢大家。

  • JSoup-1.8.1 尝试{ Document Document=Jsoup.connect(url.get(); 返回Document.getElementsByTag(“title”).text(); }catch(异常e){ System.out.println(e); 返回null; } org.jsoup.HttpStatusExc0019: HTTP错误获取URL。状态=404, U

  • 请帮我检查数据库属性。 然后,sizeBinding有第一个元素null(用于宽度)和绑定表达式实例(用于高度绑定)。我可以使用Mode=twoway设置绑定,但是我想知道为什么如果Mode没有设置为twoway就不会创建绑定实例。我认为这是因为表达式需要比路径更复杂。但是,我尝试了,但是返回null作为绑定。我尝试了GetBinding*方法,但它们的行为与完全相同。 我谷歌搜索的唯一一个问题就

  • 问题内容: 如何更改元素的内容(在这种情况下为变量“ make”中的元素)而不丢失内容?如果您可以指出其他可以修改现有xml文档的纯python模块,请告诉我。 PS!BeautifulSoup非常适合HTML和XML的屏幕抓图和解析! 问题答案: 请查看上的文档。这有效: