修改xml中某节点的值
发布时间:2020-12-16 06:22:22 所属栏目:百科 来源:网络整理
导读:如果是简单或者标准格式的xml,可以使用xstream,之前映射成一个对象然后去修改操作,很简单。 但是如果是负杂的,而且有可能xml的节点内容不一样,该怎么做呢? 一下是我的一种解决方法,当然可以利用其他的jar包如dom4j等,应该更简单一些 StringReader sr
如果是简单或者标准格式的xml,可以使用xstream,之前映射成一个对象然后去修改操作,很简单。 但是如果是负杂的,而且有可能xml的节点内容不一样,该怎么做呢? 一下是我的一种解决方法,当然可以利用其他的jar包如dom4j等,应该更简单一些 StringReader sr = new StringReader(strXml); InputSource is = new InputSource(sr); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document doc = builder.parse(is); NodeList list = doc.getElementsByTagName("extract4DB"); for (int i = 0; i < list.getLength(); i++) { Element ele = (Element) list.item(i); String brandName = ele.getAttribute("name"); if(brandName.equals("ts1")){ NodeList list1 = ele.getElementsByTagName("datasourceNames"); Element ele1 = (Element) list1.item(0); String[] s = ele1.getTextContent().split(";"); ele1.setTextContent(s[0]+"_standby;"); System.out.println(ele1.getTextContent()); } } TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.setOutputProperty("encoding","utf-8"); ByteArrayOutputStream bos = new ByteArrayOutputStream(); t.transform(new DOMSource(doc),new StreamResult(bos)); String xmlchange = bos.toString(); System.out.println(xmlchange); strXml:是附件中的字符串 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |