使用JDOM来生成XML文档

下面介绍使用Eclipse来加载JDOM的jar包,同时利用JDOM来创建并生成一个XML文档。步骤如下。

(1)在Eclipse中建立工程项目。单击 “File”|“New”|“Project”命令菜单,如图22-6所示。

图22-6   Eclipse中选择建立工程

(2)在弹出窗口中选择“Java Project”,并单击“Next >”按钮。如图22-7所示。

(3)在弹出的“New Java Project”窗口中,在“Project name”文本框内输入工程名,例如输入“JDOMDemo”,之后单击“Finish”按钮,如图22-8所示。

(4)在JDOM的官方网站http://www.jdom.org/dist/binary/下载JDOM的jar包,如图22-9所示。

        

           图22-7   选择建立Java工程                                图22-8   创建工程

(5)下载完毕后,将其解压缩,解压缩后的“jdom.jar”文件即JDOM的jar包,如图22-10所示。

  

           图22-9   JDOM官方下载页面                       图22-10   jdom.jar文件目录

(6)在已经建立好的Eclipse工程项目中,导入jdom.jar包。鼠标移至工程名“JDOMDemo”上,单击鼠标右键,在弹出菜单中单击“Properties”菜单项,如图22-11所示。

(7)在出现的“Properties for JDOMDemo”窗口中,选择“Java Build Path”选项,再在右边选择“Libraries”标签,并在其窗口中单击“Add External JARs…”按钮(添加Eclipse外部jar包),如图22-12所示。

图22-11   选择工程属性编辑选项

图22-12   工程属性编辑窗口

(8)在出现的JAR Selection窗口中,选择之前下载好的“jdom.jar”文件,并单击“打开”按钮,如图22-13所示。

(9)完成以上的几步后,会在“Libraries”标签窗口中发现多出了jdom一项,就说明导入成功了,并点击“OK”按钮,如图22-14所示。

图22-13   导入“jdom.jar”文件窗口

图22-14   成功导入“jdom.jar”文件窗口

(10)在工程项目中添加生成XML文档的类CreateXML,如图22-15所示。

(11)在代码编辑窗口中编写代码,用于生成XML文档,如代码22-7所示。

代码22-7   使用JDOM生成XML文档CreateXML.java

import java.io.*;

import java.util.*;

import org.jdom.*;

import org.jdom.input.*;

import org.jdom.output.*;

public class CreateXML

{

       /**

图22-15   创建CreateXML类

        * @param args

        */

       //声明XML中所有的元素

       Element customer,name,age,sex,address,street,city,district;

      

       public CreateXML()

       {

             //创建customer元素,并设置为XML文档的根节点

             customer = new Element("customer");

             Document myDocument = new Document(customer);

            

             //创建XML文档中的其他元素,并初始化元素名

             name = new Element("name");

             age = new Element("age");

             sex = new Element("sex");

             address = new Element("address");

             street = new Element("street");

             city = new Element("city");

             district = new Element("district");

            

             //给XML文档中的每一个元素添加内容值

             name.addContent("Wang Xiao Yue");

             age.addContent("24");

             sex.addContent("male");

             street.addContent("No.1 East Rood,ShangDi");

             district.addContent("Hai Dian");

             city.addContent("Bei Jing");

            

             //将street、district和city元素作为子元素,添加到address元素中

             address.addContent(street);

             address.addContent(district);

             address.addContent(city);

            

             //将address元素作为子元素,添加到customer根元素中

             customer.addContent(name);

             customer.addContent(age);

             customer.addContent(sex);

             customer.addContent(address);

            

             try

             {

                   //创建XML文件输出流

                   XMLOutputter fmt = new XMLOutputter();

                  

                   //创建文件输出流

                   FileWriter writer = new FileWriter("c:\\customer.xml");

                  

                   //设置所创建的XML文档的格式

                   Format f = Format.getPrettyFormat();

                   fmt.setFormat(f);

                  

                   //将生成的XML文档写入到"c:\customer.xml"文件中

                   fmt.output(myDocument, writer);

                   writer.close();

             }

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

       }

       public static void main(String[] args)

       {

             // TODO Auto-generated method stub

             CreateXML createXML = new CreateXML();

       }

}

程序运行后,会在“C:\”目录下生成 “customer.xml”文件,如图22-16所示。

新创建的“customer.xml”文件的内容如图22-17所示。

   

          图22-16   生成的“customer.xml”文件             图22-17   生成的“customer.xml”文件内容

22.3.2   使用JDOM来处理XML文档

本节介绍使用JDOM来处理之前建立的XML文档“customer.xml”,包括添加、删除以及修改XML文档中的元素。步骤如下。

(1)在之前建立的工程项目JDOMDemo中,添加处理XML文档的类ModifyXML,如图22-18所示。

图22-18   创建ModifyXML类

(2)在代码编辑窗口中编写代码,用于处理XML文档,见代码22-8所示。

代码22-8   使用JDOM处理XML文档ModifyXML.java

import org.jdom.*;

import org.jdom.output.*;

import org.jdom.xpath.*;

import java.io.*;

import java.util.Iterator;

import java.util.List;

import org.jdom.*;

import org.jdom.input.*;

import org.jdom.output.*;

public class ModifyXML

{

       /**

        * @param args

        */

       File file;                                            //声明File对象file

       Document doc;                    //声明Document对象doc

       SAXBuilder builder;                                 //声明用来解析XML文档的SAXBuilder类对象builder

      

       public ModifyXML()

       {

             try

             {

                   //创建文件对象指向"c:\customer.xml"文件

                   file = new File("c:\\customer.xml");

                  

                   //创建builder对象,并使用该对象中的build方法处理XML文件

                   builder = new SAXBuilder();

                   doc = builder.build(file);

             }

             catch(IOException e){}

             catch(Exception e){}

            

             //获得XML文档的根节点元素

             Element root=doc.getRootElement();

            

             //获得XML文档根节点元素下的全部子节点元素

             List list = root.getChildren();

            

             //利用循环来处理全部子节点元素

             for (Iterator iter = list.iterator(); iter.hasNext();)

             {

                     //获得其中一个字节点元素

                     Element element = (Element)iter.next();

                  

                     //获得该子节点元素名

                     String nodeName = element.getName();

                  

                     //当所获得的子元素名为"address"时的处理

                     if(nodeName.equals("address"))

                     {

                           //添加子元素"country",并设置其内容为"China"

                           Element country = new Element("country");

                           country.addContent("China");

                           element.addContent(country);

                        

                           //修改名为"street"的子元素内容

                           Element street = element.getChild("street");

                           street.setText("BUPT,10# XiTuCheng road");

                        

                           //修改名为"district"的子元素

                           element.removeChild("district");

                     }

             }

             try

             {

                     //创建XML文件输出流

                     XMLOutputter fmt = new XMLOutputter();

                  

                     //创建文件输出流

                     FileWriter writer = new FileWriter("c:\\customer.xml");

                  

                     //设置所创建的XML文档的格式

                     Format f = Format.getPrettyFormat();

                     fmt.setFormat(f);

                  

                     //将生成的XML文档写入到"c:\customer.xml"文件中

                     fmt.output(doc, writer);

                     writer.close();

             }

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

       }

      

       public static void main(String[] args)

       {

             // TODO Auto-generated method stub

             ModifyXML modifyXML = new ModifyXML();

       }

}

程序运行后,“customer.xml”文件的内容如图22-19所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值