Java+DOM : How do I elegantly rename an xmlns:xyz attribute?

标签 java xml dom namespaces

我有类似的输入:

<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/

相关文章:

java - 更改 Java Spark 端口号

java - 创建包含多个文件和目录的 Maven 版本

java - 如何使按钮的前景属性在 API 23 以下工作?

Javascript 使用按钮单元格动态构建 HTML 表格

javascript - 使用javascript检测浏览器打开的其他窗口的URL

java - 如何将 war 安装到 AWS

java - Java中如何存储和重用一组相关的常量值?

c# - 遍历 XML 文档

android - 使用 XML 的带箭头的矩形

javascript - jQuery $(document).ready 在 phpfox 中不起作用