【发布时间】:2021-01-21 10:13:25
【问题描述】:
我正在使用 Java 创建一个 XML 文件。 我使用 createElemenNS() 创建了根节点来创建具有命名空间的根节点。
Element root = doc.createElementNS("http://www.myorc.com/schemas", "InvConf");
然后我使用 createElement() 创建了一个节点并将其添加到根节点。该节点会自动添加如下命名空间。
Element invList = doc.createElement("InvList");
root.appendChild(invList);
<InvConf xmlns="http://www.myorc.com/schemas">
<InvList xmlns="">
...
</InvList>
<InvList xmlns="">
...
</InvList>
<InvList xmlns="">
...
</InvList>
</InvConf>
如何避免将命名空间添加到子节点? 我希望最终的 XML 如下所示
<InvConf xmlns="http://www.myorc.com/schemas">
<InvList>
...
</InvList>
<InvList>
...
</InvList>
<InvList>
...
</InvList>
</InvConf>
发现只有当 xmlparserv2.jar 在 CLASSPATH 中时才会出现问题。这是应用程序的某些部分所要求的。如何解决?
【问题讨论】:
-
子节点如果与父节点在同一个命名空间,则不会列出命名空间。
-
xmlns="" 不添加命名空间,它删除了一个。它被放在那里是因为您创建的元素与其父元素不在同一个命名空间中。
标签: java xml namespaces