我有以下XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<parent xmlns="urn:parent:ns:1.0"/>
我想出了如何将XML字符串转换为元素并使用此so将其附加到现有元素。
程序如下:
String text = "<child></child>";
Document document = builder.parse(new InputSource(new
StringReader(text)));
Element element = document.getDocumentElement();
Element importedNode = (Element) parent.importNode(element, true);
parent.getDocumentElement().appendChild(importedNode);
这会产生:
<?xml version="1.0" encoding="UTF-8"?>
<parent xmlns="urn:parent:ns:1.0">
<child xmlns=""/>
</parent>
子元素清除其默认命名空间,我想从父级“继承”命名空间(在本例中为urn:parent:ns:1.0
)。
最好是解决方案只使用JRE API for XML,没有第三方库(例如dom4j等)
答案 0 :(得分:0)
此解决方案的灵感来自此so:
String text = "<child></child>";
Document document = builder.parse(new InputSource(new
StringReader(text)));
Element originalElement = document.getDocumentElement();
Element newDocumentElement =
document.createElementNS("urn:parent:ns:1.0",
originalElement.getNodeName());
// no child elements, otherwise append all children to
// newDocumentElement
Element importedNode = (Element) parent.importNode(newDocumentElement,
true);
parent.getDocumentElement().appendChild(importedNode);