Java使用转换程序在XML标头中产生版本“ 1.1”

问题描述 投票:1回答:2

我想生成标头中版本为1.1的xml文件,因为在解析1.0版的xml文件时会出现SaxparserExceptions:

"Character reference "&#3" 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();
    }
java xml version domdocument transformer
2个回答
1
投票

Xalan可能不支持XML 1.1。尝试使用Saxon。


0
投票

doc.setXmlVersion(“ 1.1”);为我工作。

© www.soinside.com 2019 - 2024. All rights reserved.