java - 使用 Transformer 缩进 XML 文本

标签 java xml formatting indentation

我正在使用以下代码编写一个 XML 文件:

Source source = new DOMSource(rootElement);
Result result = new StreamResult(xmlFile);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(source, result);

这是输出文件:

<?xml version="1.0" encoding="UTF-8"?>
<feature-sequences>
<sequence>
<initial-frame>0</initial-frame>
<points>
<point>
<x>274.0</x>
<y>316.0</y>
</point>
...

我希望这个文件缩进,例如:

<?xml version="1.0" encoding="UTF-8"?>
<feature-sequences>
  <sequence>
    <initial-frame>0</initial-frame>
    <points>
      <point>
        <x>274.0</x>
        <y>316.0</y>
      </point>
...

在我的代码中调用 setOutputProperty 并没有解决问题,它实际上使文本换行(但不缩进)。

谁有解决这个问题的方法,而不需要外部库?

最佳答案

您可能还需要指定缩进的空格数:

transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");

关于java - 使用 Transformer 缩进 XML 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1082886/

相关文章:

Excel 输出中的 Python Pandas 自定义时间格式

java - GAE Python Datastore - 嵌套类表查询

c# - Azure 函数如何返回 XML 而不是字符串

java - 我是 Java 新手,有一项学校作业需要帮助

json - TensorFlow 将计算图导出为 XML、JSON 等

c# - 使用 C# 在内存中进行 XSLT 转换

python - 指定 PyYAML 转储部分的样式(二): sequences

javascript - 以编程方式格式化谷歌图表

当我设置 Progress-Indicator.setVisible(true) 时,Javafx Progress-Indicator 不显示

java - UnsupportedClassVersionError - JDK 具有相同版本