Java XML API转换"到& quot;

时间:2017-08-30 09:08:27

标签: java xml character-encoding

我正在开发一个Java程序,它读取HTML代码,解析HTML,获取内容(人类可读的文本)并将其存储在XML文件中。有时,HTML代码包含'"个字符(以及其他字符),但有时它们也分别写为'"

我按照适当的程序构建XML。我使用DocumentElement类,并使用TransformerDomSourceStreamResult类创建XML文件。

问题是,保存文件后,我发现&符号已替换为&。我知道这是对的。但它也将'转换为&&apos

我还尝试将Document对象转换为String对象,然后将该字符串传递给StringEscapeUtils.unescapeXml(String s)方法,以保持XML实体的完整性。但是,它不会将&实体转换为&,从而导致XML文件无效。

(我已将OutputKeys.ENCODING设置为" UTF-8"并将OutputKeys.METHOD设置为" xml&#34 ;.)

1 个答案:

答案 0 :(得分:1)

问题出在HTML解析上,而不是XML输出。在HTML& amp;是一个单引号,所以当有&在HTML中,您的解析器应该将它作为单引号提供给您。

你使用什么解析器?像Jsoup这样的流行解析器不会出错。