我正在尝试将前缀添加到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());
}
}
答案 0 :(得分:0)
在W3C DOM模型中,您无法更改节点的命名空间。如果您希望节点具有相同的本地名称但具有不同的命名空间(不包括命名空间),则必须创建新节点。 XSLT可以提供帮助。