加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

碰到写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();
					}
				}
			}
		}
	}
即可

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读