對(duì)xml文檔的解析java中有很多種方法,例如使用dom、sax、jdom等等,相比之下,我覺(jué)得還是jdom比較方便。下面介紹一下jdom的基本使用方法,不對(duì)之處還請(qǐng)各位網(wǎng)友之交。謝謝!
最新的jdom可以到他的網(wǎng)站:http://www.jdom.org去下載,現(xiàn)在的版本是1.0版,下載之后將得到j(luò)dom-1.0.zip文件,解壓后進(jìn)入build文件夾將看到一個(gè)名為jdom.jar的包,這個(gè)就是jdom的類(lèi)包了,將它加到你的classpath里就可以使用jdom提供的各種處理xml的類(lèi)和他們的方法了。應(yīng)該注重的是在解壓后的文件夾里還有一個(gè)lib文件夾,里面保存的是使用jdom的環(huán)境包,不過(guò)我在我的jdk1.4下使用沒(méi)引用這些包一樣好用,不知道是jdk1.4中已經(jīng)包含了這些東西還是原來(lái)我的eclipse已經(jīng)引用了這些包,呵呵。
好了,書(shū)歸正傳,現(xiàn)在開(kāi)始介紹jdom包的使用。
jdom包的結(jié)構(gòu)包括:
org.jdom 包含了所有的xml文檔要素的java類(lèi)
org.jdom.adapters 包含了與dom適配的java類(lèi)
org.jdom.filter 包含了xml文檔的過(guò)濾器類(lèi)
org.jdom.input 包含了讀取xml文檔的類(lèi)
org.jdom.output 包含了寫(xiě)入xml文檔的雷
org.jdom.transform 包含了將jdom xml文檔接口轉(zhuǎn)換為其他xml文檔接口
org.jdom.XPath 包含了對(duì)xml文檔xpath操作的類(lèi)
下面將通過(guò)一個(gè)例子介紹jdom的常用操作
生成xml文檔:
下面的類(lèi)將生成一個(gè)xml文檔:
/*
* Created on
*
* 寫(xiě)入xml文件的例子
*/
/**
* @author lnman
*
* To change the template for this generated type comment go to
* Window>PReferences>Java>Code Generation>Code and Comments
*/
import java.io.*;
import org.jdom.*;
import org.jdom.output.*;
public class WriteXML
{
public void BuildXML() throws Exception
{
Element root,student,number,name,age;
root = new Element("student-info"); //生成根元素:student-info
student = new Element("student"); //生成元素:student,該元素中將包含元素number,name,age
number = new Element("number");
name = new Element("name");
age = new Element("age");
Document doc = new Document(root); //將根元素植入文檔doc中
number.setText("001");
name.setText("lnman");
age.setText("24");
student.addContent(number);
student.addContent(name);
student.addContent(age);
root.addContent(student);
Format format = Format.getCompactFormat();
format.setEncoding("gb2312"); //設(shè)置xml文件的字符為gb2312
format.setIndent(" "); //設(shè)置xml文件的縮進(jìn)為4個(gè)空格
XMLOutputter XMLOut = new XMLOutputter(format);//在元素后換行,每一層元素縮排四格
XMLOut.output(doc, new FileOutputStream("studentinfo.xml"));
}
public static void main(String[] args) throws Exception
{
WriteXML w = new WriteXML();
System.out.println("Now we build an XML document .....");
w.BuildXML();
System.out.println("finished!");
}
}
生成的xml文檔為:
<?xml version="1.0" encoding="gb2312"?>
<student-info>
<student>
<number>001</number>
<name>lnman</name>
<age>24</age>
</student>
</student-info>
讀取xml文檔的例子:
/*
* Created on
*
*用jdom讀取xml文檔的例子
*
*/
/**
* @author lnman
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
import org.jdom.output.*;
import org.jdom.input.*;
import org.jdom.*;
import java.io.*;
import java.util.*;
public class ReadXML
{
public static void main(String[] args) throws Exception
{
SAXBuilder builder = new SAXBuilder();
Document read_doc = builder.build("studentinfo.xml");
Element stu = read_doc.getRootElement();
List list = stu.getChildren("student");
for(int i = 0;i < list.size();i++)
{
Element e = (Element)list.get(i);
String str_number = e.getChildText("number");
String str_name = e.getChildText("name");
String str_age = e.getChildText("age");
System.out.println("---------STUDENT--------------");
System.out.println("NUMBER:" + str_number);
System.out.println("NAME:" + str_name);
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注