【问题标题】:Correct unescaped text in HTML更正 HTML 中的非转义文本
【发布时间】:2018-01-17 00:20:13
【问题描述】:

我的问题不是上述问题的重复问题...

我有这段文字(来自数据库):

<p>I love Java & .NET ! <strong>5 > 3</strong></p>

如您所见,&amp;&gt; 没有被转义。

在Java中,有没有办法把这个字符串变成:

<p>I love Java &amp; .NET ! <strong>5 &gt; 3</strong></p>

正如您所注意到的,我想以相同的方式保留所有 HTML 标记,但我想转义文本,对 XML 无效(此文本必须对 Docx4J XHTMLImporter 有效)。

谢谢!

【问题讨论】:

  • @Javad 您的 dup 目标是转义整个字符串。这个问题是关于转义单个字符,但保持标签不变。
  • @Ivar 感谢您的额外解释。

标签: java string docx4j


【解决方案1】:

您可以使用转义字符来解决您的问题。
对于 & 签名,您可以使用:
&amp;#38;
对于 > 你可以使用:
&amp;#62;
可以在here 找到完整的转义字符列表。

【讨论】:

  • 我的 HTML 标签呢?我真的需要第二个字符串,而不是其他任何东西!
【解决方案2】:

我使用 Jsoup 及其解析函数来清理我的字符串:

    String unscappedHtml = " ";
    if (StringUtils.isNotBlank(unscappedText)) {
        // We remove width and height from image tags.
        Document doc = Jsoup.parse(unscappedText);
        doc.outputSettings().syntax(Document.OutputSettings.Syntax.xml);
        doc.select("a").unwrap();
        unscappedHtml = doc.body().html();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-21
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多