设置命名空间上的元素属性(Setting Namespace Attributes on an El

2019-09-20 18:32发布

我试图在Java中创建一个XML文档,其中包含以下元素:

<project xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" 
         xmlns:acme="http://www.acme.com/schemas"
         color="blue">

我知道如何创建项目节点。 我也知道了如何使用设置颜色属性

element.setAttribute("color", "blue")

难道我设置的xmlns和xmlns:极致属性通过使用setAttribute()以同样的方式还是我做它在一些特殊的方式,因为它们的命名空间的属性?

Answer 1:

我相信,你必须使用:

element.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:acme", "http://www.acme.com/schemas");


Answer 2:

我不认为下面的代码将服务的问题!

myDocument.createElementNS("http://www.imsglobal.org/xsd/ims_qtiasiv1p2","project");

这将如下创建一个元素(使用DOM)

<http://www.imsglobal.org/xsd/ims_qtiasiv1p2:project>

因此,这将不是一个命名空间属性添加到元素。 因此,使用DOM,我们可以这样做

Element request = doc.createElement("project");

Attr attr = doc.createAttribute("xmlns");
attr.setValue("http://www.imsglobal.org/xsd/ims_qtiasiv1p2");

request.setAttributeNode(attr);

因此,这将设置类似下面的第一个属性,你可以用同样的方法设置多个属性

<project xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2>


Answer 3:

当您创建的元素,你可以简单地指定命名空间。 例如:

myDocument.createElementNS("http://www.imsglobal.org/xsd/ims_qtiasiv1p2","project");

那么Java DOM库将处理您的命名空间声明为您服务。



文章来源: Setting Namespace Attributes on an Element