当前位置: 首页 > 面试题库 >

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

傅元龙
2023-03-14
问题内容

请看下面的简化示例:

    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不要转换’<’符号?


问题答案:

可以使用jsoup。

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

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

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

从此链接了解更多信息。



 类似资料:
  • 我正在使用Apache POI读取<代码>。docx文件,并在一些操作后写入。<代码>。我使用的docx文件是法语的,但当我在它将一些法语字符转换为特殊字符。示例转换为 下面的代码用于编写文件 默认使用UTF-8。 在调试时,我在写入<代码>之前进行了检查。csv数据保持原样。但它在写作时被转换了吗?我已将默认语言环境设置为语言环境。法语 我错过了什么吗?

  • 在 HTML 文件中,有两个字符需要特殊处理: < 和 & 。 < 符号用于起始标签,& 符号则用于标记 HTML 实体,如果你只是想要显示这些字符的原型,你必须要使用实体的形式,像是 &lt; 和 &amp;。 & 字符尤其让网络文档编写者受折磨,如果你要打「AT&T」 ,你必须要写成「AT&amp;T」。而网址中的 & 字符也要转换。比如你要链接到: http://images.google.

  • 问题内容: 我该如何更换: “ã”和“ a” “é”和“ e” 在PHP中?这可能吗?我读过某处我可以使用基本字符的ascii值和重音符号的ascii值进行一些数学运算,但是现在找不到任何参考。 问题答案: 这个答案是不正确的。 编写它时,我不理解Unicode规范化。查看francadaval的评论和链接 签出Normalizer类来执行此操作。文档很好,所以我将其链接起来,而不是在这里重复:

  • 我有一个XML文件,其中包含一个带有特殊字符或转义字符的元素。当我将该文件解组为Java对象时,JAXB会自动转义这些字符。但是,我不希望转义它们,应该用XML文件中存在的任何值填充对象。我的XML文件片段如下所示: 我的JAXB订单类如下所示: 在解组时,Order类对象的名称字段的值为“Order one” 我知道将这个值放在CDATA中的解决方案,这样它就不会被转义,但是我正在解组的XML文

  • 问题内容: 我有一个使用DocX4J将html文件转换为DocX的应用程序。我在使用ç,á,é,í,ã等特殊字符时遇到问题。我在html文件中的文本字体是Arial,但是当我将它们转换为DocX时,前面提到的特殊字符将设置为calibri字体。因此,在同一个单词(例如Cláudio)中,我用Arial字体写了“ Cl”,用Calibri字体写了“á”字符,用Arial字体写了“ udio”。 我看

  • 正如我们所看到的,一个反斜杠 "\" 是用来表示匹配字符类的。所以它是一个特殊字符。 还存在其它的特殊字符,这些字符在正则表达式中有特殊的含义。它们可以被用来做更加强大的搜索。 这里是包含所有特殊字符的列表:[ \ ^ $ . | ? * + ( )。 现在并不需要尝试去记住它们 —— 当我们分别处理其中的每一个时,你自然而然就会记住它们。 转义 如果要把特殊字符作为常规字符来使用,只需要在它前面