使用Java DOM自定义XML格式

时间:2013-12-31 17:48:59

标签: java xml dom format transformer

这个问题涉及使用Java和XML进行漂亮打印。数据本身存储在XML中,但我使用Java来操作数据。我有以下代码

<ParentElement>
  <ChildElement><HeaderNum>34</HeaderNum><LineNum>21</LineNum></ChildElement>
  <ChildElement><HeaderNum>42</HeaderNum><LineNum>54</LineNum></ChildElement>
</ParentElement>

我想在两个现有的ChildElement行之间插入另一个ChildElement。我实际上没有问题,但我需要保持格式化。如果我使用

transformer.setOutputProperty(OutputKeys.INDENT, "yes");

它将完全重新格式化文件。如果我将该属性设置为“no”,则会插入新属性,但不会自行插入。它与第一行相同。

就个人而言,我只是制作这两个值属性,但我无法更改文件的格式。有没有办法在自己的行上插入一个新的,但没有任何其他格式?

1 个答案:

答案 0 :(得分:0)

如果您不愿意/不能信任序列化程序的缩进 - 有时您不能,因为空白实际上是XML文档内容的一部分 - 那么您将不得不自己管理空白通过在新元素的前面插入适当的文本节点。

DOM没有任何内置功能可以帮助您解决这个问题,因为DOM不知道哪些文本有意义或没有意义,并且不知道您正在使用什么缩进惯例。