小编典典

保留属性顺序的java xml库

java

我正在编写一个Java程序,该程序读取xml文件,进行一些修改并写回xml。

使用标准的Java xml DOM api,不会保留属性的顺序。也就是说,如果我有一个输入文件,例如:

<person first_name="john" last_name="lederrey"/>

我可能会得到一个输出文件:

<person last_name="lederrey" first_name="john"/>

是正确的,因为XML规范说order属性并不重要。

但是,我的程序需要保留属性的顺序,以便一个人可以使用diff工具轻松比较输入和输出文档。

一种解决方案是使用SAX(而不是DOM)处理文档:
DOM处理后XML属性的顺序

但是,这不适用于我的情况,因为我需要在一个节点中进行的转换可能取决于整个文档的XPATH表达式。因此,最简单的方法是拥有一个与标准Java
DOM库非常相似的xml库,不同之处在于它保留了属性的顺序。

有没有这样的图书馆?

ps:请避免讨论我是否应该保留属性顺序。这是一个非常有趣的讨论,但这不是这个问题的重点。


阅读 202

收藏
2020-11-19

共1个答案

小编典典

您可能还想尝试DecentXML,因为它可以保留属性顺序,注释甚至标识。如果您需要以编程方式更新也应该可以人工编辑的XML文件,则非常好。我们将其用于我们的一种配置工具。

2020-11-19