我正在使用 apache commons 配置 XMLConfiguration 来构建和保存 XML 文件。保存时没有格式化。我得到类似的东西:
<root>
<node>
<child>
</child>
</node>
</root>
我知道有很多方法可以使用其他库来获取该输出并对其进行格式化,但是肯定有一种方法可以设置一些简单的东西,比如从公共配置中缩进?
我正在使用 apache commons 配置 XMLConfiguration 来构建和保存 XML 文件。保存时没有格式化。我得到类似的东西:
<root>
<node>
<child>
</child>
</node>
</root>
我知道有很多方法可以使用其他库来获取该输出并对其进行格式化,但是肯定有一种方法可以设置一些简单的东西,比如从公共配置中缩进?
遇到了同样的问题。虽然这个问题是很久以前提出的,但想分享一个解决方案:
XMLConfiguration 类有一个名为 createTransformed 的受保护方法。它应该通过正确的缩进配置来扩展和设置。
public class ExtendedXMLConfiguration extends XMLConfiguration
{
public ExtendedXMLConfiguration(File file) throws ConfigurationException
{
super(file);
}
@Override
protected Transformer createTransformer() throws TransformerException {
Transformer transformer = super.createTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
return transformer;
}
}
你可以参考这个threads,它提供了很多简单的方法来处理Java中的xml格式。