JDOM是使用Java语言编写的用于读、写、操作XML的一套组件。
要生成的XML文件:
<?xml version="1.0" encoding="GBK"?> <addresslist> <linkman id="lxh"> <name>张三</name> <email>mldnqa@163.com</email> </linkman> </addresslist>
使用JDOM生成XML文件 :
import java.io.*;
import org.jdom.*;
import org.jdom.output.XMLOutputter;
public class WriteXML {
public static void main(String[] args) {
Element addresslist = new Element("addresslist");// 定义根节点
Element linkman = new Element("linkman"); // 定义linkman节点
Element name = new Element("name"); // 定义name节点
Element email = new Element("email"); // 定义email节点
Attribute id = new Attribute("id", "lxh"); // 定义属性
Document doc = new Document(addresslist); // 声明一个Document对象
name.setText("张三"); // 设置name元素的内容
email.setText("mldnqa@163.com"); // 设置email元素的内容
name.setAttribute(id); // 设置name元素的属性
linkman.addContent(name); // name为linkman子节点
linkman.addContent(email); // email为linkman子节点
addresslist.addContent(linkman); // 将linkman加入根节点中
XMLOutputter out = new XMLOutputter(); // 用来输出XML文件
out.setFormat(out.getFormat().setEncoding("GBK")); // 设置输出的编码
try { // 输出XML文件
out.output(doc, new FileOutputStream("D:" + File.separator
+ "address.xml"));
} catch (Exception e) {
e.printStackTrace();
} }}
使用JDOM读取XML文件:
import java.io.File;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class ReadXML {
public static void main(String[] args) throws Exception {
SAXBuilder builder = new SAXBuilder(); // 建立SAX解析
Document read_doc = builder.build("D:" +
File.separator + "address.xml"); // 找到Document
Element stu = read_doc.getRootElement(); // 读取根元素
List list = stu.getChildren("linkman"); // 得到全部linkman子元素
for (int i = 0; i < list.size(); i++) { // 输出
Element e = (Element) list.get(i); // 取出一个linkman子元素
String name = e.getChildText("name"); // 取得name元素内容
String id = e.getChild("name").
getAttribute("id").getValue(); // 取得name元素的id属性
String email = e.getChildText("email"); // 取得email元素内容
System.out.println("-------------- 联系人 --------------");
System.out.println("姓名:" + name + ",编号:" + id);
System.out.println("EMAIL:" + email);
System.out.println("-----------------------------------");
System.out.println();
}
}
}
JDOM可以方便的完成XML文件的读取及输出;
SAX + DOM = JDOM;