第一范文网 - 专业文章范例文档资料分享平台

用JDOM操作XML文件

来源:用户分享 时间:2025/11/21 21:04:08 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

用JDOM操作XML文件

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 beta8的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文件:

<书>

<书名>Java编程入门 <作者>张三

<出版社>电子出版社 <价格>35.0

<出版日期>2002-10-07 <书>

<书名>XML在Java中的应用 <作者>李四

<出版社>希望出版社 <价格>92.0

<出版日期>2002-10-07

下面是操作XML文件的Bean: XmlBean.java package xml; /**

* 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

book = (Element)books.get(i ); //得到第一本书元素

xml.setbookname(book.getChild(\书名\xml.setauthor(book.getChild(\作者\xml.setpub(book.getChild(\出版社\xml.setprice(book.getChild(\价格\

xml.setpubdate(book.getChild(\出版日期\xmlVector.add(xml); } }

catch(Exception e){

System.err.println(e+\}

finally{ try{

fi.close(); }

catch(Exception e){ e.printStackTrace(); } }

return xmlVector; } /**

* 删除XML文件指定信息 */

public static void DelXML(HttpServletRequest request)throws Exception{ FileInputStream fi = null; FileOutputStream fo = null; try{

String path=request.getParameter(\

int xmlid=Integer.parseInt(request.getParameter(\fi = new FileInputStream(path); SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(fi);

Element root = doc.getRootElement(); //得到根元素

List books = root.getChildren(); //得到根元素所有子元素的集合 books.remove(xmlid);//删除指定位置的子元素 String indent = \boolean newLines = true;

XMLOutputter outp = new XMLOutputter(indent,newLines,\fo=new FileOutputStream(path); outp.output(doc,fo); }

catch(Exception e){

System.err.println(e+\

}

finally{ try{

fi.close(); fo.close(); }

catch(Exception e){ e.printStackTrace(); } } } /**

* 添加XML文件指定信息 */

public static void AddXML(HttpServletRequest request)throws Exception{ FileInputStream fi = null; FileOutputStream fo = null; try{

String path=request.getParameter(\fi = new FileInputStream(path); SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(fi);

Element root = doc.getRootElement(); //得到根元素

List books = root.getChildren(); //得到根元素所有子元素的集合 String bookname=request.getParameter(\String author=request.getParameter(\String price=request.getParameter(\String pub=request.getParameter(\

String pubdate=request.getParameter(\Text newtext;

Element newbook= new Element(\书\Element newname= new Element(\书名\newname.setText(bookname); newbook.addContent(newname);

Element newauthor= new Element(\作者\newauthor.setText(author);

newbook.addContent(newauthor);

Element newpub= new Element(\出版社\newpub.setText(pub);

newbook.addContent(newpub);

Element newprice= new Element(\价格\newprice.setText(price);

newbook.addContent(newprice);

Element newdate= new Element(\出版日期\

搜索更多关于: 用JDOM操作XML文件 的文档
用JDOM操作XML文件.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8qub60mjbi4mg6283wc0_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top