Element root = (Element) document.createElement("rootElement"); document.appendChild(root); root.appendChild(document.createTextNode("\n\t")); root.appendChild( document.createTextNode("Some text") ); root.appendChild(document.createTextNode("\n"));得到如下结果: <?xml version="1.0" encoding="UTF-8"?><rootElement> Some text </rootElement>但是,用尽办法不能变成 <?xml version="1.0" encoding="UTF-8"?> <rootElement> Some text </rootElement>如果打开一个现成的XML文档不做任何修改直接保存成另外一个XML文件,根node同样会出现上述问题。使用jdom不会出现这种情况。
呵呵,搞定! TransformerFactory tf = TransformerFactory.newInstance(); Transformer ts = tf.newTransformer(); // 前面的代码加上这一句 ts.setOutputProperty(OutputKeys.INDENT, "yes");效果: <?xml version="1.0" encoding="UTF-8"?> <rootElement> Some text </rootElement>
不过j2sdk中的格式化后的结果没有dom4j格式化后的好看。
(Element) document.createElement("rootElement"); document.appendChild(root); root.appendChild(document.createTextNode("\n\t"));
root.appendChild( document.createTextNode("Some text") );
root.appendChild(document.createTextNode("\n"));得到如下结果:
<?xml version="1.0" encoding="UTF-8"?><rootElement>
Some text
</rootElement>但是,用尽办法不能变成
<?xml version="1.0" encoding="UTF-8"?>
<rootElement>
Some text
</rootElement>如果打开一个现成的XML文档不做任何修改直接保存成另外一个XML文件,根node同样会出现上述问题。使用jdom不会出现这种情况。
Transformer ts = tf.newTransformer(); // 前面的代码加上这一句
ts.setOutputProperty(OutputKeys.INDENT, "yes");效果:
<?xml version="1.0" encoding="UTF-8"?>
<rootElement>
Some text
</rootElement>
我没发现J2SDK有现成的“保证输出xml文件时缩进”的办法。在你帖子的回复中,我使用
root.appendChild(document.createTextNode("\n\t"));
的方法。
你可以单独创建一个textNode
document.createTextNode("\t")
自己控制其中“\t”的数量,实现缩进。这种方法虽然麻烦,但是也能奏效。