我正在开发一个Java程序,该程序读取HTML代码,解析HTML,获取内容(可读文本)并将其存储在XML文件中。有时,HTML代码包含'
,"
字符(以及其他),但有时它们也分别为'
和"
。
我按照适当的过程构建XML。我使用Document
和Element
类,然后使用Transformer
,DomSource
和StreamResult
类制作XML文件。
问题在于,保存文件后,我看到&
符号被&
替换。我知道那是对的。但是它也将'
转换为&&apos
!
我还尝试将Document
对象转换为String
对象,然后将该字符串传递给StringEscapeUtils.unescapeXml(String s)
方法,以使XML实体完整。但是,它不会将&
实体转换为&
,从而导致无效的XML文件。
(我已将OutputKeys.ENCODING
设置为" UTF-8",将OutputKeys.METHOD
设置为" XML"。)
问题是您的HTML解析,而不是XML输出。在html& apos中;是一个引用,所以当有& apos时;在html中,您的解析器应以单个报价给您。
您正在使用什么解析器?诸如JSOUP之类的流行解析器不会犯此错误。