我正在编写一个java程序,它读取xml文件,进行一些修改,然后写回xml.
使用标准java xml DOM api,不保留属性的顺序.也就是说,如果我有一个输入文件,例如:
<person first_name="john" last_name="lederrey"/>
Run Code Online (Sandbox Code Playgroud)
我可能会得到一个输出文件:
<person last_name="lederrey" first_name="john"/>
Run Code Online (Sandbox Code Playgroud)
这是正确的,因为XML规范说订单属性并不重要.
但是,我的程序需要保留属性的顺序,以便人们可以轻松地将输入和输出文档与diff工具进行比较.
一个解决方案是使用SAX(而不是DOM)处理文档: DOM处理后的XML属性顺序
但是,这对我的情况不起作用,因为我需要在一个节点中进行的转换可能取决于整个文档中的XPATH表达式.所以,最简单的方法是让一个xml库与标准java DOM lib非常相似,但它保留了属性顺序.
有没有这样的图书馆?
ps:请避免讨论是否应该保留属性顺序.这是一个非常有趣的讨论,但这不是这个问题的重点.
您可能还想尝试DecentXML,因为它可以保留属性顺序、注释甚至缩进。
如果您需要以编程方式更新也应该可供人工编辑的 XML 文件,那么这是非常好的。我们将它用作我们的配置工具之一。
- 编辑 -
原来的位置似乎不再可用;尝试这些:
| 归档时间: |
|
| 查看次数: |
3844 次 |
| 最近记录: |