java中dom4j 解析xml。修改节点内容,删除节点。在线等,求大神

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中dom4j 解析xml。修改节点内容,删除节点。在线等,求大神相关的知识,希望对你有一定的参考价值。

<USER_PKG>
<USER>
<BUSI_SYS_USER_ID>4493</BUSI_SYS_USER_ID>
<SYS_USER_NAME>test</SYS_USER_NAME>
<EMP_NO>4493</EMP_NO>
<USER_NAME>测试12</USER_NAME>
<ORG_NO>3894</ORG_NO>
</USER>
</USER_PKG>
xml文件格式。假设我现在需要往里面新增一个USER节点,但是需要根据 <BUSI_SYS_USER_ID>4493</BUSI_SYS_USER_ID>节点判断需要新增的USER节点是否源文件存在。
如果存在,则修改USER节点下<EMP_NO><USER_NAME> <ORG_NO>内容。
是根据<BUSI_SYS_USER_ID>节点中的内容,来匹配。
如果不存在这个ID说明这个对象没有,新增一个USER节点。这个问题已自己解决。
存在问题,就是如果ID存在,我需要修改,<EMP_NO><USER_NAME> <ORG_NO>内容

我做过,时间长有点忘了,貌似用selectNode()可以选定指定名称节点List,if List.size()>0;说明有节点,这样就可以修改了 参考技术A 思路如下:可以把xml节点树读入,成为对象,针对读入的节点树对象进行修改删除之后,再把节点树对象转化为xml文件。addAttribute增加属性,attribute设置属性值,setText设置文本值。这三个方法用于修改。

java xml节点添加修改属性

<first>
<second>
<here id="a" name="b">
<."还有一些子节点".>
</here>
<here id="c" name="d">
<...>
</here>
</second>
</first>
就是让<here>里面加个东西变成<here id="a" name="b" color="q">...
用的是
import org.xml.sax.SAXException;
dom4j

参考技术A SAXReader reader = new SAXReader();
Document doc = reader.read(new FileInputStream("d.xml"));
Element root = doc.getRootElement();
List<Element> list = root.selectNodes("//here");
for (Element e : list)
System.out.println(e);
e.addAttribute("color", "q");

// 保存
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
writer.write(doc);
writer.close();本回答被提问者采纳

以上是关于java中dom4j 解析xml。修改节点内容,删除节点。在线等,求大神的主要内容,如果未能解决你的问题,请参考以下文章

如何用Dom4j获取CDATA结点内容

【求助】Dom4j 生成xml,节点增加属性时,属性值中有特殊字符,如何做到不转义

dom4j解析xml重复节点

java中dom4j解析xml文件怎么获取节点属性

Java 解析xml文件

java获取XML指定节点的全部子节点