這篇文章講的不錯~把JDOM的基本操作實例化了,不過由於當時的作者用的JDOM版本還比較陳舊,所以部分代碼會編譯出錯!支持中文也不好!所以,法老在原作者的基礎上對程序做了修改!休正了編譯出錯以及中文亂碼的問題。發表出來,供大家學習和使用。
測試環境:jdom1.0,weblogic 8.1sp2,tomcat(一個很好用的JSP運行平台) 5.0,IE 6。0
/==================================正文開始=======================================/
Java + xml(標准化越來越近了) = JDOM !
這就是JDOM設計者的目標。如果你曾經使用過煩人的SAX或是DOM來處理xml(標准化越來越近了),你就會知道為什麼要有JDOM或者是JAXB。在今年(2002)的JavaOne會議上JDOM的主要創始人Jason Hunter有一篇精彩的演講介紹了JDOM技術,題目就是JDOM Makes xml(標准化越來越近了) Easy。
獲得並安裝JDOM
在http://jdom.org可以下載JDOM的最新版本。以JDOM 1.0的2進制版本為例。下載後解壓縮,JDOM的jar文件就是build目錄下的文件jdom.jar,將之加入類路徑。另外JDOM還需要lib目錄下那些jar文件如xerces.jar,jaxp.jar的支持。如果在使用中出現以下錯誤:
java.lang.NoSuchMethodError
或
java.lang.NoClassDefFoundError: org/xml(標准化越來越近了)/sax/SAXNotRecognizedException
你需要保證xerces.jar文件在CLASSPATH中位於其他xml(標准化越來越近了)類,如JAXP或Crimson之前,這些類文件,包括以前老版本的xerces,可能不支持SAX2.0或DOM Level 2。於是導致了上面的錯誤。
一個簡單的例子
JDOM的處理方式有些類似於DOM,但它主要是用SAX實現的,你不必擔心處理速度和內存的問題。另外,JDOM中幾乎沒有接口,的類全部是實實在在的類,沒有類工廠類的。
下面是實例用的xml(標准化越來越近了)文件: Myxml(標准化越來越近了).xml(標准化越來越近了)
<?xml(標准化越來越近了) version="1.0" encoding="utf-8"?>
<書庫>
<書>
<書名>Java編程入門</書名>
<作者>張三</作者>
<出版社>電子出版社</出版社>
<價格>35.0</價格>
<出版日期>2002-10-07</出版日期>
</書>
<書>
<書名>xml(標准化越來越近了)在Java中的應用</書名>
<作者>李四</作者>
<出版社>希望出版社</出版社>
<價格>92.0</價格>
<出版日期>2002-10-07</出版日期>
</書>
</書庫>
下面是操作xml(標准化越來越近了)文件的Bean: xml(標准化越來越近了)Bean.java
package jdom.test;
/**
* xml(標准化越來越近了)的讀寫操作Bean
*/
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class xml(標准化越來越近了)Bean {
private String bookname, author, pub, price, pubdate;
public String getbookname() {
return bookname;
}
public String getauthor() {
return author;
}
public String getpub() {
return pub;
}
public String getprice() {
return price;
}
public String getpubdate() {
return pubdate;
}
public void setbookname(String bookname) {
this.bookname = bookname;
}
public void setauthor(String author) {
this.author = author;
}
public void setpub(String pub) {
this.pub = pub;
}
public void setprice(String price) {
this.price = price;
}
public void setpubdate(String pubdate) {
this.pubdate = pubdate;
}