在DOM(java)中统一节点列表
这是我的密码:在DOM(java)中统一节点列表,java,dom,xpath,Java,Dom,Xpath,这是我的密码: private NodeList union(NodeList left, NodeList right){ NodeList result=null; try{ DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFactory.setNamespaceAware(true); // never forget this!
private NodeList union(NodeList left, NodeList right){
NodeList result=null;
try{
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true); // never forget this!
DocumentBuilder newBuilder = domFactory.newDocumentBuilder();
Document newDoc = newBuilder.newDocument();
Element root = newDoc.createElement("root");
newDoc.appendChild(root);
if(left!=null){
for(int i=0;i<left.getLength();i++){
Node tmp=(Node)left.item(i).cloneNode(true);
newDoc.adoptNode(tmp);
newDoc.getDocumentElement().appendChild(tmp);
//root.appendChild(newDoc.importNode((Node)left.item(i), true));
}
}
if(right!=null){
for(int i=0;i<right.getLength();i++){
Node tmp=(Node)right.item(i).cloneNode(true);
newDoc.adoptNode(tmp);
newDoc.getDocumentElement().appendChild(tmp);
//root.appendChild(newDoc.importNode((Node)right.item(i), true));
}
}
result=root.getChildNodes();
} catch(ParserConfigurationException e){
System.err.println(e);
}
return result;
}
专用节点列表联合(节点列表左侧、节点列表右侧){
节点列表结果=null;
试一试{
DocumentBuilderFactory domFactory=DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);//永远不要忘记这一点!
DocumentBuilder newBuilder=domFactory.newDocumentBuilder();
Document newDoc=newBuilder.newDocument();
元素根=newDoc.createElement(“根”);
newDoc.appendChild(根);
if(左!=null){
对于(int i=0;i一个节点只能存在于一个文档中。如果希望复制的节点同时存在于两个文档中,那就太倒霉了。只能在目标文档中创建一个新节点,并将子节点和属性从旧节点移动到新节点。查看document::adoptNode(节点),了解最简单的方法是什么