碰到写xml文件的一个错误
发布时间:2020-12-16 06:40:12 所属栏目:百科 来源:网络整理
导读:w3c.dom写xml文件时候 如果对Element元素进行操作,而将该Element赋给另一个document元素时候,会报错: org.w3c.dom.DOMException:WRONG_DOCUMENT_ERR:Anodeisusedinadifferentdocumentthantheonethatcreatedit. 由于Element元素不是同一个document元素生成
w3c.dom写xml文件时候 如果对Element元素进行操作,而将该Element赋给另一个document元素时候,会报错:
org.w3c.dom.DOMException:WRONG_DOCUMENT_ERR:Anodeisusedinadifferentdocumentthantheonethatcreatedit.
由于Element元素不是同一个document元素生成的,所以会报错,此时 要把该Element赋给另一个xml文件时候,需要通过:
public static void sendAlarm(List<Element> elements) { if(elements != null && !elements.isEmpty()){ ObjectOutputStream oos = null; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbf.newDocumentBuilder(); Transformer transformer = TransformerFactory.newInstance().newTransformer(); oos = new ObjectOutputStream(new Socket(host,port).getOutputStream()); transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8"); for (Element element : elements){ Document doc = builder.newDocument(); <strong><span style="font-size:18px;color:#339999;">doc.appendChild(doc.importNode(element,true));</span></strong> //document 转 string ByteArrayOutputStream bos = new ByteArrayOutputStream(); transformer.transform(new DOMSource(doc),new StreamResult(bos)); String xmlStr = bos.toString(); log.info(xmlStr); oos.writeObject(xmlStr); oos.flush(); } } catch (Exception e) { e.printStackTrace(); } finally { if(oos != null) { try { oos.close(); } catch (IOException e) { e.printStackTrace(); } } } } }即可 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |