【发布时间】:2019-12-17 22:03:11
【问题描述】:
我想在标头中生成 1.1 作为版本的 xml 文件,因为在解析 1.0 版本的 xml 文件时我得到 SaxparserExceptions:
"Character reference "" is an invalid XML character".
当我手动更改标题时,我没有收到任何错误。通过 outputkeys 更改版本似乎不起作用。该文件仍然有错误的标题:
"<?xml version="1.0" encoding="UTF-8" standalone="no"?>"
示例代码:
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory
.newTransformer();
transformer.setOutputProperty(
OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.VERSION, "1.1");
transformer
.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount",
"2");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(
"processed_.xml");
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
【问题讨论】:
-
XML 1.1 在野外很少见——也许您更应该修复您的 XML?那个奇怪的“”是从哪里来的?
-
我无法修复“我的”XML,因为内容来自庞大的爬网数据集。修复它需要一段时间。
标签: java xml version domdocument transformer