将前缀添加到默认命名空间" xmlns"

时间:2014-10-13 12:04:12

标签: java dom

我正在尝试将前缀添加到DOM对象的默认命名空间中,我无法实现这一点,我创建了一个没有默认Namesapce的新节点,将其打印出来以确保不存在默认命名空间。添加了一个带有前缀名称空间的新属性。

我能够添加新属性,但无法删除默认命名空间。你能告诉我如何实现它吗?

for (int j = 0; j < ODMNode1.getAttributes().getLength(); j++) {
    System.out.println("Attribute: "
            + ODMNode1.getAttributes().item(j).getNodeName() + " = "
            + ODMNode1.getAttributes().item(j).getNodeValue());
    if (ODMNode1.getAttributes().item(j).getNodeName().equals("xmlns") &&
           ODMNode1.getAttributes().item(j).getNodeValue().equals("http://www.com.org"))'{
        System.out.println("Beforev Removed"+   ODMNode1.getAttributes().item(j).getNodeName());
        Element element = (Element) ODMNode1;
        element.removeAttribute("xmlns");
        System.out.println("Removed"+   element.getAttribute("xmlns"));
        System.out.println("After Removed"+ ODMNode1.getAttributes().item(j).getNodeName());
    }
}

1 个答案:

答案 0 :(得分:0)

在W3C DOM模型中,您无法更改节点的命名空间。如果您希望节点具有相同的本地名称但具有不同的命名空间(不包括命名空间),则必须创建新节点。 XSLT可以提供帮助。