下面介绍使用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”文件内容
本节介绍使用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所示。