JDOM操作XML文件(法老修正版)

2008-02-23 09:20:28来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

原文:JDOM操作XML文件
地址:http://www.jspcn.net/htmlnews/200120272.html
---------------------------------------------------------------------------
这篇文章讲的不错~把JDOM的基本操作实例化了,不过由于当时的作者用的JDOM版本还比较陈旧,所以部分代码会编译出错!支持中文也不好!所以,法老在原作者的基础上对程序做了修改!休正了编译出错以及中文乱码的问题。发表出来,供大家学习和使用。
测试环境:jdom1.0,Weblogic 8.1sp2,tomcat 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: XmlBean.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 XmlBean {
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;
}

public XmlBean() {
}

/**
* 读取XML文件所有信息
*/
public Vector LoadXML(String path) throws Exception {
Vector xmlVector = null;
FileInputStream fi = null;
try {
fi = new FileInputStream(path);
xmlVector = new Vector();
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); // 得到根元素
List books = root.getChildren(); // 得到根元素所有子元素的集合
Element book = null;
XmlBean xml = null;
for (int i = 0; i < books.size(); i ) {
xml = new XmlBean();
book = (Element) books.get(i); // 得到第一本书元素

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:使用标准的KNI增加KVM的系统调用

下一篇:workflow接口划分