天天看点

android xml增删改查,dom4j对XML进行增删改查(详细)

创建一个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 {

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());

}

}

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();

}

}

更新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

7499

ALLEN

SALESMAN

7698

1981-2-20

3200.0

300.00

30

7566

JONES

MANAGER

7839

1981-4-2

5950.0

20