我有类似的输入:
<root xmlns="urn:my:main"
xmlns:a="urn:my:a" xmlns:b="urn:my:b">
...
</root>
并希望有类似的东西作为输出:
<MY_main:root xmlns:MY_main="urn:my:main"
xmlns:MY_a="urn:my:a" xmlns:MY_b="urn:my:b">
...
</MY_main:root>
...或者反过来。
如何使用 DOM 以优雅的方式实现此目的?
也就是说,不搜索以“xmlns”开头的属性名称。
最佳答案
您不会在 DOM 中找到 xmlns 属性,它们不是 DOM 的一部分。
如果您找到所需的节点 (getElementsByTagNameNS) 并将其qualifiedName (qname) 设置为包含您喜欢的前缀的新值,您可能会取得一些成功。然后重新生成XML文档。
顺便说一下,当使用任何正常的 XML 解析器时,命名空间前缀(这是您试图更改的内容)在很大程度上是无关紧要的。命名空间 URI 才是最重要的。为什么要将前缀设置为特定值?
关于Java+DOM : How do I elegantly rename an xmlns:xyz attribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229196/