2017-08-09 70 views
0

我的问题是不是上面提出的问题的重复的问题...正确转义文本在HTML

我有这样的文字(从数据库):

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

正如你看到的,&>不会被转义。

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

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

正如你注意到,我想保持在相同的方式,他们是所有的HTML标签,但我想逃离文本,对XML无效(此文本必须对Docx4J XHTMLImporter有效)。

谢谢!

+1

@Javad你DUP目标是有关转义整个字符串。这个问题是关于转义单个字符,但保持原样。 – Ivar

+0

@Ivar谢谢你的额外解释。 – Guillaume

回答

0

您可以使用转义字符来解决您的问题。
对于&标志可以使用:
&#38;
而对于>您可以使用:
&#62;
转义字符全部列表可以发现here

+0

我的HTML标记呢?我真的需要第二个字符串,而不是其他任何东西! – Guillaume

0

我用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(); 
    }