java - 将 &nbsp 作为字符串处理

标签 java web-scraping jsoup

如何将从 HTML 文件中解析的   字符替换为“”? 关于此有很多问题和“已接受”的答案,例如,

How to remove   with Jsoup?

How to remove " " from java string

Handling special entities like & nbsp; , & pound; in HtmlCleaner

但是我仍然没有通过使用这些链接中给出的所有解决方案来解决这个问题,

if(tr.text().replace("\u00a0", "").isEmpty()){
    System.out.println("testing---");
}

我在这里做错了什么? jsoup可以用在这个场景吗?我在其中一个答案中读到了这一点。

更新 这是我试图从中获取数据的 HTML 部分。

<TR>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boBL noWrap>&nbsp;</TD>
    <TD class=xl27boL noWrap align=right>&nbsp;</TD>
</TR>

最佳答案

answer given here工作正常。 isEmpty 得到 false 的原因是 tr 元素的文本不   个字符 - 其中还有其他空白字符。您需要添加 trim 调用:

if(tr.text().replace("\u00a0", "").trim().isEmpty()){
// Here --------------------------^^^^^^^
    System.out.println("testing---");
}

当我将示例 HTML 运行到 JSoup 中时,我只是通过查看 tr.text() 返回的文本就弄清楚了这一点;基本调试。

关于java - 将 &nbsp 作为字符串处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25590720/

相关文章:

java - 在多线程应用程序中使用 VTD

java - 使用socket读取html并打印

javascript - 使用 Python 和 Selenium Webdriver 抓取 javascript

python - HTTP 错误 504 : Gateway Time-out when trying to read a reddit comments post

java - 从 Tomcat 服务器中的 netbeans 项目运行 JSP

python - Beautifulsoup:遍历类并提取信息

java - 使用 Jsoup 从输入中获取名称标签

java - 检查是否存在输入ID的元素

java - 我可以使用 jsoup 进行 html 到 xml 的转换吗?

java - 图表素面零线