java jdom进行xml的增删改差_dom4j对XML进行增删改查(详细)

[dom4j提供了一套操作xml文档的API,下面我们就实现一下最基本的增删改查操作。       先看下最开始的xml文档       诗展 1 22 嘿嘿 2

创建一个xml ,createXml

package com.sun.demo; import java.io.FileWriter; import java.io.Writer; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class XmlCreator { public void createXml() throws Exception { // 创建一个空的文档对象 Document doc = DocumentHelper.createDocument(); Element el_rowdata = doc.addElement("ROWDATA"); Element el_row = el_rowdata.addElement("ROW"); Element el_empno = el_row.addElement("EMPNO"); Element el_ename = el_row.addElement("ENAME"); el_empno.setText("7521"); el_ename.setText("史密斯"); Writer w = new FileWriter("src/demo.xml"); OutputFormat opf = OutputFormat.createPrettyPrint(); opf.setEncoding("GBK"); XMLWriter xw = new XMLWriter(w, opf); xw.write(doc); xw.close(); } public static void main(String[] args) throws Exception { XmlCreator xc = new XmlCreator(); xc.createXml(); } }

读取xml,ReadXml

package com.sun.demo; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class ReadXml { /** * 使用XPath语法来直接定位到某个节点 */ public static void readElement() throws Exception { SAXReader sr = new SAXReader(); Document doc = sr.read("src/EMP.xml"); List list = doc.selectNodes("ROWDATA/ROW/EMPNO"); for (Object obj : list) { Element el = (Element) obj; System.out.println(el.getText()); } } /** * 使用XPath语法直接定位到某个属性 */ public static void readAttribute() throws Exception { SAXReader sr = new SAXReader(); Document doc = sr.read("src/EMP.xml");//相对路径,可以换成自己的绝对路径 List list = doc.selectNodes("ROWDATA/ROW/ENAME/@firstname"); for (Object obj : list) { Attribute el = (Attribute) obj; System.out.println(el.getText()); } } public static void main(String[] args) throws Exception { readElement(); } }

[使用Dom4j对XML进行增删改查非常简单,这里就不多说废话,下面上代码package com.bird.dom4j;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import

更新xml,UpdateXml

package demo; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class UpdateXml { public void updateXml() throws IOException, DocumentException { SAXReader sr = new SAXReader(); String file = "src/EMP.xml"; Document doc = sr.read(file); List list = doc.selectNodes("ROWDATA/ROW/SAL"); for (Object obj : list) { Element ele = (Element) obj; String sal = ele.getText(); double n_sal = 0; if (sal != null && !sal.equals("")) { n_sal = Double.parseDouble(sal); } ele.setText("" + n_sal * 2); } OutputFormat opf = OutputFormat.createPrettyPrint(); opf.setEncoding("GBK"); Writer w = new FileWriter(file); XMLWriter xw = new XMLWriter(w, opf); xw.write(doc); xw.close(); } public static void main(String[] args) throws DocumentException, IOException { UpdateXml txr = new UpdateXml(); txr.updateXml(); } }

EMP.xml

<?xml version="1.0" encoding="UTF-8"?> 7499ALLENSALESMAN76981981-2-203200.0300.00307566JONESMANAGER78391981-4-25950.020

[1:DOM4J性能最好,连Sun的JAXM也在用DOM4J.目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值