在xml序列化期间将每个属性放在新行上

时间:2009-08-12 09:51:20

标签: java xml xml-serialization pretty-print

假设我有一个DOM对象(或包含xml的字符串)。是否有可能以某种方式序列化xml,使每个属性出现在新行上?

这是我想要的输出:

<parent>
    <anElement 
        attrOne="1"
        attrTwo="2"
        attrThree="3"
    />
</parent>

首选如果解决方案是标准java api的一部分,但我怀疑这样的功能在那里不可用,或者我错了?

我在.NET Framework中找到了一个名为NewLineOnAttributes的序列化程序的属性。我正在寻找的东西是等价的,但在java中。

3 个答案:

答案 0 :(得分:1)

DecentXML解析器可以执行此操作。

答案 1 :(得分:0)

XOM库有一个Serializer类,你可以覆盖它以你想要的任何格式输出。

答案 2 :(得分:0)

我不知道任何提供该特定功能的Java API API。我检查了JDOM和XOM的源代码,它们都在同一行上打印属性,并没有提供特定的钩子来覆盖它。

XOM和JDOM都有用于序列化XML的特定类(分别为XMLOutputterSerializer),并且这两个类都有用于处理属性序列化的保护或公共方法,所以你可以,如果你想要,继承那些类并覆盖适当的方法来控制你想要的属性格式。

至于标准的Java API,但是,忘记它,那些东西非常讨厌。