我需要通過支持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的例子嗎?它是否有任何縮進開頭,或任何帶有前導或尾隨空白的文本節點? –