java - 作为字符串处理

时间:2014-08-31 09:40:03

标签: java web-scraping jsoup

如何用带有“”的HTML文件替换我正在解析的&nbsp字符? 有很多问题和“接受”的答案就像这样,

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>

3 个答案:

答案 0 :(得分:2)

answer given here正常工作。您false获得isEmpty的原因是tr元素的文字不包含&nbsp;个字符 - 那里还有其他空白字符。您需要添加trim来电:

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

当我将您的示例HTML运行到JSoup中时,我只是通过查看tr.text()返回的文本来解决这个问题。基本调试。

答案 1 :(得分:0)

从Jsoup获取文档后,使用StringEscapeUtils

StringEscapeUtils.unescapeHtml4(test));

使用此库org-apache-commons-lang.jar。

答案 2 :(得分:0)

对于更简单的解决方案,您可以使用现有的

java.lang.string.trim();

您可以使用

实现它
 WebUI.getText().trim();