java DOM xml文件创建 - 输出文件中没有制表符或空格

标签 java xml dom indentation

我已经查看了 stackoverflow 上的帖子,但似乎没有任何帮助。

这里有:

            // write the content into xml file
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        transformerFactory.setAttribute("indent-number", 2);
        Transformer transformer = transformerFactory.newTransformer();
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");

        DOMSource source = new DOMSource(xmlDoc);
        StreamResult result =  new StreamResult(new File("C:\\testing.xml"));
        transformer.transform(source, result);

这就是我得到的输出:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Satellite SatelliteName="" XmlFileVersion="">
<test0>
<test1>
<test2>
<test3>
<test4>
<test5>
<test6>
<test7>
<test8>
<test9/>
</test8>
</test7>
</test6>
</test5>
</test4>
</test3>
</test2>
</test1>
</test0>
</Satellite>

没有制表符或空格。

我设置缩进号是因为 java 可能存在错误,我激活了 OutputKeys.INDENT。

还有其他想法吗?

编辑 1(在 adarshr 修复后):

我现在有空格了。只有第一个 Satellite Entry 被放在第一行,这是不应该的。

<?xml version="1.0" encoding="UTF-8"?><Satellite SatelliteName="" XmlFileVersion="">
  <test0>
    <test1>
      <test2>
        <test3>
          <test4>
            <test5>
              <test6>
                <test7>
                  <test8>
                    <test9>blah</test9>
                  </test8>
                </test7>
              </test6>
            </test5>
          </test4>
        </test3>
      </test2>
    </test1>
  </test0>
  <sdjklhewlkr/>
</Satellite>

编辑 2:

所以当前状态是我现在有空格,但在 XML 声明后没有换行符。我该如何解决这个问题?

最佳答案

尝试像这样设置缩进量:

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

关于java DOM xml文件创建 - 输出文件中没有制表符或空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5142632/

相关文章:

java - 使用java的selenium代码中的空指针异常

xml - 如何在项目而不是工作区中保存 XML 格式设置?

c# - 在 C# 中将 FileInfo 对象序列化为 XML

java - 将 Java DOM 文档序列化为 XML : Add CData Elements

php - 使用 SimpleHTMLDOM 在 PHP 中解析 HTML iFrame SRC

Java 区域设置到国家/地区代码 (ISO 3166)

java - JPopupmenut 在 linux/Ubuntu 下不工作

java - Y 轴在 JFreeChart 中未显示百万和十亿的正确数字

c# - 为什么 element.getAttribute ("style") 忽略冒号 ":"字符之后的所有内容?仅返回部分值

javascript - 在首次 react 应用程序初始化之前显示加载图标