我知道在 XML 中属性的顺序不应该介意,但在我的特定情况下,我确实需要与原始 XML 文档的顺序保持一致(例如,正确验证某些 XML 签名)。
我在获取原始文档的某个节点并将该节点的克隆添加到新创建的文档时遇到了一些问题。问题是我签署了原始节点,该节点在版本属性之前声明了一个 namespace ,但是当我从代码的其他部分再次检索该节点时,版本和 namespace 声明属性的顺序发生了变化。我希望它们与原始文件保持一致,因为我需要验证签名。这就是现在正在发生的事情:
原始签名文档:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><ns0:CF xmlns:ns0="http://someurl.com" version="1.0">
<ns0:EF>...
要从原始文档验证的节点:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><ns0:CF version="1.0" xmlns:ns0="http://someurl.com">
<ns0:EF>...
我需要保持版本和 xmlns 属性的顺序,就像它们出现在原始文档中一样。
我已经尝试了很多东西,但它们似乎都不起作用......谢谢你,请原谅我的英语!
最佳答案
您可以尝试使用 DecentXML: https://code.google.com/p/decentxml/
我曾经用它来实现一个配置工具,该工具必须在不更改现有格式的情况下更新现有的 XML,并且必须以人性化的顺序输出属性。它在我的案例中非常有效。
关于java - 更改 xmlns 属性的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22964949/