如何防止jsoup转换特殊字符?

时间:2016-12-16 14:10:30

标签: java jsoup

请查看以下简化示例:

    public static void main(String[] args) {
       String html = "<html>\n" +
                    " <head></head>\n" +
                    " <body>\n" +
                    "  <div> \n" +
                    "   <p> 2 <= X </p> \n" +
                    "  </div>\n" +
                    " </body>\n" +
                    "</html>";
        Document doc = Jsoup.parse(html);                    
        System.out.println(doc.select("p").outerHtml());
    }

打印出<p> 2 &lt;= X </p>,但我希望所选的html部分打印出来:<p> 2 <= X </p>。我怎么能告诉jsoup不要转换&#39;&lt;&#39;符号

2 个答案:

答案 0 :(得分:2)

可以使用jsoup。

使用jSoup 1.8.3,可以使用保留原始html的方法Parser.unescapeEntities

import org.jsoup.parser.Parser;
...
String html = Parser.unescapeEntities(original_html, false));

在以前的某些版本中,此方法不存在。

this link.

了解详情

答案 1 :(得分:0)

您可以使用Apache Commons StringEscapeUtils.unescapeHtml4():

System.out.println(StringEscapeUtils.unescapeHtml4(doc.select("p").outerHtml()));

http://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/StringEscapeUtils.html#unescapeHtml4(java.lang.String)