我需要通过支持XSLT 2.0的变换器生成一个格式良好的XML文件。 我发现Saxon支持XSTL 2.0,但我无法弄清楚如何生成具有良好缩进的XML。Java中的撒克逊indedentatation
在标准的Java变压器,我用这个代码:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("myOutput.xml"));
transformer.transform(source, result);
实际上效果很好,但如果我切换到撒克逊用:
TransformerFactory transformerFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl", null);
然后压痕不工作了。 我还阅读了文档,似乎我将不得不使用saxon:indent-spaces属性,但似乎只能在Saxon的PE版本中使用。但是,它表示默认值是3,所以它应该默认缩进。
无论如何,你知道一种用Saxon(免费版)生成一个XML格式良好的XML吗?
谢谢
你能举一个你正在处理的输入和输出XML的例子吗?它是否有任何缩进开头,或任何带有前导或尾随空白的文本节点? –