在将DOM Tree从一个文档复制到另一个文档时,我想将xmlns=""
节点从原始文档保留到新文档中。
但是,当我使用xsd:schema
DOM4J
时,会将其排除在外。
原始文件包含。
createCopy()
复制后,新文档包含:
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
有关如何创建原始文档树的精确副本的任何解决方案都会很棒。
代码示例:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
答案 0 :(得分:0)
HY, 对于copy un document xml,你可以使用.clone(),这是一个例子:
public static void copyDocument() {
//read document
Document documentOld = getDocument("C:\\test\\test.xml");
if (documentOld != null) {
Element elRoot = documentOld.getRootElement();
Element elRootCopy = (Element) elRoot.clone();
Document documentNew = DocumentHelper.createDocument();
documentNew.add(elRootCopy);
//save the new document
}
else {
System.out.println("document not found or document is not well format ");
}
}
public static Document getDocument(String pathname) {
Document document = null;
SAXReader saxReader = null;
try {
saxReader = new SAXReader();
document = saxReader.read(new File(pathname));
}
catch (DocumentException e) {
e.printStackTrace();
}
return document;
}