无法用Java编写XML 1.1文档
你如何用
Java编写XML 1.1版文档? Java似乎只支持1.0版.
我尝试使用OutputKeys.VERSION输出属性,如下所示,但是没有效果: DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance(); DocumentBuilder db = fact.newDocumentBuilder(); Document doc = db.newDocument(); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD,"xml"); transformer.setOutputProperty(OutputKeys.VERSION,"1.1"); DOMSource source = new DOMSource(doc); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); transformer.transform(source,result); System.out.println(writer.toString()); //still produces a 1.0 XML document 我在以下JVM中测试了上面的代码: > Linux:OpenJDK运行时环境(IcedTea 2.5.5)(7u79-2.5.5-1~deb7u1) 如果可能的话,我宁愿不必包含任何外部库.谢谢. 解决方法
我在Linux下使用jdk1.8.0_40-b26,如果我运行你的代码我得到:
<?xml version="1.0" encoding="UTF-8"?> 但是如果我在maven依赖项中添加xalan-2.7.2,我会得到: <?xml version="1.1" encoding="UTF-8"?> 解释是与jdk捆绑在一起的xml库很老,最好的解决方案是使用外部库. 阅读documentation,我们看到参考实现中包含的版本应该是
为了确认,我在我的maven依赖项中添加了xalan-2.6.0,然后我再次获得 <?xml version="1.0" encoding="UTF-8"?> 因此,如果要使用XML 1.1,则必须使用最新的外部xml库,如Xerces 2.11和Xalan 2.7.2. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |