【发布时间】:2015-09-18 19:02:04
【问题描述】:
我有一个 XML 文档,它以下列方式开始:
<?xml version="1.0"?>
<!DOCTYPE viewdef [
<!ENTITY nbsp " "> <!-- no-break space = non-breaking space U+00A0 ISOnum -->
<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum -->
<!ENTITY amp "&"> <!-- ampersand -->
<!ENTITY shy "­"> <!-- soft hyphen -->
]>
我正在使用 Jsoup 1.8.2 以如下方式解析文档:
public static void convertXml(String inFile, String outFile) throws Exception {
String xmlString = FileUtils.readFileToString(new File(inFile), Charset.forName("UTF-8"));
Document document = Jsoup.parse(xmlString, "UTF-8", Parser.xmlParser());
FileUtils.writeStringToFile(new File(outFile), document.html(), "UTF-8");
}
在这种情况下,我希望输出文件与输入文件相同,但 Jsoup 会生成此文件:
<?xml version="1.0"?> <!DOCTYPE viewdef>
<!-- no-break space = non-breaking space U+00A0 ISOnum -->
<!--ENTITY copy "©"-->
<!-- copyright sign, U+00A9 ISOnum -->
<!--ENTITY amp "&"-->
<!-- ampersand -->
<!--ENTITY shy "­"-->
<!-- soft hyphen --> ]>
这是一个错误还是有什么方法可以保留原始 DOCTYPE 声明?
【问题讨论】: