4

我有一个 xml 文件,它具有以下标头:<?xml version="1.1" encoding="UTF-8"?>. 这也是强制性的,该文件是 1.1 版,因为其中包含一些字符,这些字符在 1.1 版中是不允许的。

我的任务是从文件中提取一些实体并将其再次保存为 xml 文件。如果我生成一个新的 xml 文件,它将是 1.0 版。由于新文件中存在一些编码错误,我认为问题是错误的 xml 版本。是否有可能在 1.1 版中生成 xml 文件(包括正确的标头)?

这是我当前代码的片段:

//read the file
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
...
}

//write the output file
SAXTransformerFactory fac = (SAXTransformerFactory)TransformerFactory.newInstance();
final TransformerHandler tfh = fac.newTransformerHandler();
Transformer transformer = tfh.getTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

我希望有人能帮助我。

最好的,迈克尔

4

1 回答 1

5

您可能希望将版本指定为输出属性。

请参阅OutputKeys.VERSION

于 2012-06-05T22:24:12.080 回答