欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JDOM = DOM + SAX

程序员文章站 2022-05-28 10:46:35
...
WriteXML:

使用JDOM 完成简单的XML输出,相比DOM方便许多.

package org.mhb.xml.jdom;
import java.io.*;
import org.jdom.*;
import org.jdom.output.*;
public class WriteXML
{
public static void main(String[] args)throws Exception
{
Element addresslist = new Element("addresslist");
Element linkman = new Element("linkman");
Element name = new Element("name");
Element email = new Element("email");
Attribute id = new Attribute("id","mhb");
Document doc = new Document(addresslist);
name.setText("mhb");
name.setAttribute(id);
email.setText("www.baidu.com");
linkman.addContent(name); //设置关系
linkman.addContent(email);
addresslist.addContent(linkman);
XMLOutputter out = new XMLOutputter();
out.setFormat(out.getFormat().setEncoding("GBK"));
out.output(doc,new FileOutputStream(new File("D:" + File.separator + "address.xml")));
}
}


ReadXML:
使用JDOM 完成xml文件的读取.

package org.mhb.xml.jdom;
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
public class ReadXML
{
public static void main(String[] args)throws Exception
{
SAXBuilder builder = new SAXBuilder();
Document read_doc = builder.build(new File("D:" + File.separator + "address.xml"));
Element root = read_doc.getRootElement();//取得根
List list = root.getChildren("linkman");//得到所有的linkman
for(int i=0;i<list.size();i++)
{
Element e = (Element) list.get(i);
String name = e.getChildText("name");
String id = e.getChild("name").getAttribute("id").getValue();
String email = e.getChildText("email");
System.out.println("************** 联系人 **************");
System.out.println("姓名:" + name + ",编号:" + id);
System.out.println("Email:" + email);
System.out.println("*************************************");
System.out.println();
}
}
}


由WriteXML生成的address.xml文件,并由ReadXML读取.

<?xml version="1.0" encoding="GBK"?>
<addresslist>
<linkman>
<name id="mhb">mhb</name>
<email>www.baidu.com</email>
</linkman>
</addresslist>



通过比较可以清楚的发现,通过JDOM实现的XML解析的功能本身融合了DOM和SAX的特点,但是在使用起来时却非常方便,这就是JDOM之所以使用广泛的原因了,但是现在最新的XML解析包并不是JDOM.
最新的是DOM4J.
相关标签: xml jdom java