java xml节点添加修改属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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对xml文件添加节点

例如:<?xml version="1.0" encoding="GB2312"?>
<ROOT>
<SYSTEM>
<SYSTEM_ID><![CDATA[test_wj]]></SYSTEM_ID>
<CHECK_CODE><![CDATA[kHGb0+p@R7Hohn-MoMhy$roMMR*Wlo]]></CHECK_CODE>
<SYS_ORGAN_ID><![CDATA[51]]></SYS_ORGAN_ID>
</SYSTEM>
</ROOT>文件 我想通过一段代码把它变成
<?xml version="1.0" encoding="GB2312"?>
<ROOT>
<SYSTEM>
<SYSTEM_ID><![CDATA[test_wj]]></SYSTEM_ID>
<CHECK_CODE><![CDATA[kHGb0+p@R7Hohn-MoMhy$roMMR*Wlo]]></CHECK_CODE>
<SYS_ORGAN_ID><![CDATA[51]]></SYS_ORGAN_ID>
</SYSTEM>
<PARAM>
<TASKLIST>
<TASK>
<DATA_TRAN_ID><![CDATA[14595]]></DATA_TRAN_ID>
</TASK>
</TASKLIST>
</PARAM>
</ROOT>
qdmmy6 你基本上给出了答案 但是你能在给我补充一下吗?我想删除某个节点 或者在指定的节点下面加上某个节点还有就是你下面写的 我想 在一个子节点下面并列添加两个节点 怎么办 例如:添加成
<TASKLIST>
<TASK>
<DATA_TRAN_ID><![CDATA[14595]]></DATA_TRAN_ID>
<DATA_TRAN_ID_AAA>10002</DATA_TRAN_ID_AAA>
</TASK>
</TASKLIST>
给个小例子 我基本上就能看懂了 我在家30分
哥们 最后这个问题很麻烦 项目需求 用jdom不让用dom4j
您看能不能想下办法

参考技术A /*
这里使用了dom4j组件,你需要自己去下载dom4j。
其中a.xml是你的源文件。
这个程序没有向磁盘中创建一个新文件,你可以自己修改代码。
例如:
XMLWriter xmlWriter = new XMLWriter(new PrintWriter(System.out), format);
可以修改为
XMLWriter xmlWriter = new XMLWriter(new FileWriter("a.xml"), format);
这样就可以修改源文件a.xml了。
*/

import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.dom4j.io.SAXReader;

import java.io.*;

public class Test
public static void main(String[] args)
SAXReader saxReader = new SAXReader();
try
Document doc = saxReader.read(new File("a.xml"));
doc.getRootElement().addElement("PARAM")
.addElement("TASKLIST").addElement("TASK")
.addElement("DATA_TRAN_ID").addCDATA("14595");

OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("gb2312");
XMLWriter xmlWriter = new XMLWriter(new PrintWriter(System.out), format);
xmlWriter.write(doc);
xmlWriter.close();
catch (DocumentException e)
e.printStackTrace();
catch(IOException e)
e.printStackTrace();


参考技术B 使用dom解析是可以做到的,需要用到的api有
javax.xml.parsers.DocumentBuilder
org.w3c.dom.Document
其他相关的去看下文档就行了
参考技术C 正在做,一会给你发过去,把你的QQ给我.本回答被提问者采纳

以上是关于java xml节点添加修改属性的主要内容,如果未能解决你的问题,请参考以下文章

详解SimpleXML添加_修改_删除_遍历XML节点属性

java如何读取xml节点元素值?

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

C#如何读取xml文件里面节点里面的属性信息?

C#在xml文件中指定节点插入节点和属性

java解析xml文件,会把节点属性中的换行转换成空格,怎样才能避免此类转换,即保留换行