﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-别碰我的咖啡</title><link>http://www.blogjava.net/mydooom/</link><description>今天你喝咖啡了吗?</description><language>zh-cn</language><lastBuildDate>Thu, 23 Apr 2026 08:22:42 GMT</lastBuildDate><pubDate>Thu, 23 Apr 2026 08:22:42 GMT</pubDate><ttl>60</ttl><item><title>XMLBEAN的使用</title><link>http://www.blogjava.net/mydooom/archive/2005/12/12/23506.html</link><dc:creator>月风</dc:creator><author>月风</author><pubDate>Mon, 12 Dec 2005 08:30:00 GMT</pubDate><guid>http://www.blogjava.net/mydooom/archive/2005/12/12/23506.html</guid><wfw:comment>http://www.blogjava.net/mydooom/comments/23506.html</wfw:comment><comments>http://www.blogjava.net/mydooom/archive/2005/12/12/23506.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mydooom/comments/commentRss/23506.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mydooom/services/trackbacks/23506.html</trackback:ping><description><![CDATA[<SPAN style="FONT-SIZE: 16px"><FONT size=2>作者:叶枫(</FONT><A href="http://blog.matrix.org.cn/page/叶枫" target=_new><FONT size=2>http://blog.matrix.org.cn/page/叶枫</FONT></A><FONT size=2>)<BR>原文:[http://www.matrix.org.cn/resource/article/44/44027_XMLBean.html]http://www.matrix.org.cn/resource/article/44/44027_XMLBean.html[/url]<BR>关键字:XML XMLBean Parser<BR><BR><STRONG>一、关于XML解析<BR></STRONG></FONT></SPAN><BR><FONT size=2>&nbsp;&nbsp;XML在Java应用程序里变得越来越重要, 广泛应用于数据存储和<BR>交换. 比如我们常见的配置文件,都是以XML方式存储的. XML还应用<BR>于Java Message Service和Web Services等技术作为数据交换.<BR>因此,正确读写XML文档是XML应用的基础.<BR>&nbsp;&nbsp;Java提供了SAX和DOM两种方式用于解析XML,但即便如此,要读写一个<BR>稍微复杂的XML,也不是一件容易的事.<BR><BR><B><SPAN style="FONT-SIZE: 16px">二、XMLBean简介</SPAN></B><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;Hibernate已经成为目前流行的面向Java环境的对象/关系数据库映射工具.<BR>在Hibernate等对象/关系数据库映射工具出现之前,对数据库的操作是<BR>通过JDBC来实现的,对数据库的任何操作,开发人员都要自己写SQL语句<BR>来实现. 对象/关系数据库映射工具出现后,对数据库的操作转成对<BR>JavaBean的操作,极大方便了数据库开发. 所以如果有一个类似的工具能够<BR>实现将对XML的读写转成对JavaBean的操作,将会简化XML的读写,即使对XML<BR>不熟悉的开发人员也能方便地读写XML. 这个工具就是XMLBean.<BR><BR><B><SPAN style="FONT-SIZE: 16px">三、准备XMLBean和XML文档</SPAN></B><BR><BR>&nbsp;&nbsp; XMLBean是Apache的一个开源项目,可以从http://www.apache.org下载,<BR>最新的版本是2.0. 解压后目录如下:<BR></FONT><FONT size=2><SPAN style="COLOR: blue">xmlbean2.0.0<BR>&nbsp;&nbsp;&nbsp;&nbsp; +---bin<BR>&nbsp;&nbsp;&nbsp;&nbsp; +---docs<BR>&nbsp;&nbsp;&nbsp;&nbsp; +---lib<BR>&nbsp;&nbsp;&nbsp;&nbsp; +---samples<BR>&nbsp;&nbsp;&nbsp;&nbsp; +---schemas</SPAN><BR><BR>另外还要准备一个XML文档(customers.xml),<BR>在本文的例子里,我们将对这个文档进行读写操作. 文档源码如下:<BR></FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&lt;Customers&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;customer&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;1&lt;/id&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;female&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;firstname&gt;Jessica&lt;/firstname&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;lastname&gt;Lim&lt;/lastname&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;phoneNumber&gt;1234567&lt;/phoneNumber&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;address&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;primaryAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;postalCode&gt;350106&lt;/postalCode&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;addressLine1&gt;#25-1&lt;/addressLine1&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;addressLine2&gt;SHINSAYAMA 2-CHOME&lt;/addressLine2&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/primaryAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;billingAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;receiver&gt;Ms Danielle&lt;/receiver&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;postalCode&gt;350107&lt;/postalCode&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;addressLine1&gt;#167&lt;/addressLine1&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;addressLine2&gt;NORTH TOWER HARBOUR CITY&lt;/addressLine2&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/billingAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/address&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/customer&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;customer&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;2&lt;/id&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;male&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;firstname&gt;David&lt;/firstname&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;lastname&gt;Bill&lt;/lastname&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;phoneNumber&gt;808182&lt;/phoneNumber&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;address&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;primaryAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;postalCode&gt;319087&lt;/postalCode&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;addressLine1&gt;1033 WS St.&lt;/addressLine1&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;addressLine2&gt;Tima Road&lt;/addressLine2&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/primaryAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;billingAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;receiver&gt;Mr William&lt;/receiver&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;postalCode&gt;672993&lt;/postalCode&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;addressLine1&gt;1033 WS St.&lt;/addressLine1&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;addressLine2&gt;Tima Road&lt;/addressLine2&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/billingAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/address&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/customer&gt;<BR>&lt;/Customers&gt;<BR></FONT></PRE><BR><BR><FONT size=2>这是一个客户的数据模型,每个客户都有客户编号(ID),姓名,性别(gender),<BR>电话号码(phoneNumber)和地址,其中地址有两个: 首要地址(PrimaryAddress)<BR>和帐单地址(BillingAddress),每个地址有邮编,地址1,和地址2组成.<BR>其中帐单地址还有收件人(receiver).<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;此外,还要准备一个配置文件(文件名customer.xsdconfig),这个文件的<BR>作用我后面会讲,它的内容如下:<BR></FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&lt;xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config"&gt;<BR><BR>&nbsp;&nbsp;&lt;xb:namespace&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;xb:package&gt;sample.xmlbean&lt;/xb:package&gt;<BR>&nbsp;&nbsp;&lt;/xb:namespace&gt;<BR><BR>&lt;/xb:config&gt;<BR></FONT></PRE><BR><BR><FONT size=2><B><SPAN style="FONT-SIZE: 16px">四、XMLBean使用步骤</SPAN></B><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;和其他面向Java环境的对象/关系数据库映射工具的使用步骤一样,<BR>在正式使用XMLBean前,我们要作两个准备.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;1. 生成XML Schema文件<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 什么是XML Schema文件? 正常情况下,每个XML文件都有一个Schema文件,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XML Schema文件是一个XML的约束文件,它定义了XML文件的结构和元素.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以及对元素和结构的约束. 通俗地讲,如果说XML文件是数据库里的记录,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 那么Schema就是表结构定义.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为什么需要这个文件? XMLBean需要通过这个文件知道一个XML文件的<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 结构以及约束,比如数据类型等. 利用这个Schema文件,XMLBean将会产生<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一系列相关的Java Classes来实现对XML的操作. 而作为开发人员,则是<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 利用XMLBean产生的Java Classes来完成对XML的操作而不需要SAX或DOM.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 怎样产生这个Schema文件呢? 如果对于熟悉XML的开发人员,可以自己来<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 写这个Schema文件,对于不熟悉XML的开发人员,可以通过一些工具来完成.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 比较有名的如XMLSPY和Stylus Studio都可以通过XML文件来生成Schema<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件. 加入我们已经生成这个Schema文件(customer.xsd):<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elementFormDefault="qualified"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="Customers"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:complexType&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element maxOccurs="unbounded" name="customer"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="customerType"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:complexType&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:element&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:complexType name="customerType"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="id" type="xs:int"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="gender" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="firstname" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="lastname" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="phoneNumber" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="address" type="addressType"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:complexType&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:complexType name="addressType"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="primaryAddress" type="primaryAddressType"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="billingAddress" type="billingAddressType"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:complexType&gt;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:complexType name="primaryAddressType"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="postalCode" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="addressLine1" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="addressLine2" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:complexType&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:complexType name="billingAddressType"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xs:element name="receiver" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="postalCode" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="addressLine1" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element name="addressLine2" type="xs:string"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:complexType&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:schema&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></PRE><BR><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;2. 利用scomp来生成Java Classes<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scomp是XMLBean提供的一个编译工具,它在bin的目录下. 通过这个工具,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们可以将以上的Schema文件生成Java Classes.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scomp的语法如下:-<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scomp [options] [dirs]* [schemaFile.xsd]* [service.wsdl]* [config.xsdconfig]*<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></PRE><BR><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主要参数说明:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -src [dir]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- 生成的Java Classes存放目录<BR>&nbsp;&nbsp;&nbsp;&nbsp; -srconly&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- 不编译Java Classes,不产生Jar文件<BR>&nbsp;&nbsp;&nbsp;&nbsp; -out [jarFileName]&nbsp;&nbsp;-- 生成的Jar文件,缺省是xmltypes.jar<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -compiler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Java编译器的路径,即Javac的位置<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; schemaFile.xsd&nbsp;&nbsp;&nbsp;&nbsp;-- XML Schema文件位置<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config.xsdconfig&nbsp;&nbsp; -- xsdconfig文件的位置, 这个文件主要用来制定生成的Java Class<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的一些文件名规则和Package的名称,在本文,package是sample.xmlbean<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在本文,我是这样运行的:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scomp -src build\src&nbsp;&nbsp;-out build\customerXmlBean.jar schema\customer.xsd<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -compiler C:\jdk142_04\bin\javac customer.xsdconfig<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></PRE><BR><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个命令行的意思是告诉scomp生成customerXmlBean.jar,放在build目录下,同时<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 生成源代码放在build\src下, Schema文件是customer.xsd,xsdconfig文件是customer.xsdconfig.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实, 生成的Java源代码没有多大作用,我们要的是jar文件.我们先看一下build\src\sample\xmlbean下生成的Classes.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomersDocument.java&nbsp;&nbsp;&nbsp;&nbsp;-- 整个XML文档的Java Class映射<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CustomerType.java&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- 节点sustomer的映射<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressType.java&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- 节点address的映射<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BillingAddressType.java&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- 节点billingAddress的映射<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrimaryAddressType.java&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- 节点primaryAddress的映射<BR>&nbsp;&nbsp;&nbsp;&nbsp; </FONT></PRE><BR><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好了,到此我们所有的准备工作已经完成了. 下面就开始进入重点：利用刚才生成的jar文件读写XML.<BR><BR><B><SPAN style="FONT-SIZE: 16px">五、利用XMLBean读XML文件</SPAN></B><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;新建一个Java Project,将XMLBean2.0.0\lib\下的Jar文件和刚才我们生成的customerXmlBean.jar加入<BR>&nbsp;&nbsp;&nbsp;&nbsp;到Project的ClassPath.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;新建一个Java Class: CustomerXMLBean.&nbsp;&nbsp;源码如下:<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;package com.sample.reader;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;import java.io.File;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;import sample.xmlbean.*;<BR>&nbsp;&nbsp;&nbsp;&nbsp;import org.apache.commons.beanutils.BeanUtils;<BR>&nbsp;&nbsp;&nbsp;&nbsp;import org.apache.xmlbeans.XmlOptions;<BR>&nbsp;&nbsp;&nbsp;&nbsp;public class CustomerXMLBean {<BR>&nbsp;&nbsp;&nbsp;&nbsp;private String filename = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;public CustomerXMLBean(String filename) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.filename = filename;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;public void customerReader() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File xmlFile = new File(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomersDocument doc = CustomersDocument.Factory.parse(xmlFile);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomerType[] customers = doc.getCustomers().getCustomerArray();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; customers.length; i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomerType customer = customers[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("Customer#" + i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("Customer ID:" + customer.getId());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("First name:" + customer.getFirstname());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("Last name:" + customer.getLastname());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("Gender:" + customer.getGender());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("PhoneNumber:" + customer.getPhoneNumber());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Primary address<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrimaryAddressType primaryAddress = customer.getAddress().getPrimaryAddress();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("PrimaryAddress:");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("PostalCode:" + primaryAddress.getPostalCode());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("AddressLine1:" + primaryAddress.getAddressLine1());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("AddressLine2:" + primaryAddress.getAddressLine2());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Billing address<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BillingAddressType billingAddress = customer.getAddress().getBillingAddress();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("BillingAddress:");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("Receiver:" + billingAddress.getReceiver());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("PostalCode:" + billingAddress.getPostalCode());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("AddressLine1:" + billingAddress.getAddressLine1());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("AddressLine2:" + billingAddress.getAddressLine2());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception ex) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;private void println(String str) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(str);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp; public static void main(String[] args) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String filename = "F://JavaTest//Eclipse//XMLBean//xml//customers.xml";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; CustomerXMLBean customerXMLBean = new CustomerXMLBean(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; customerXMLBean.customerReader();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT></PRE><BR><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;运行它,参看输出结果:<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Customer#0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Customer ID:1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; First name:Jessica<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Last name:Lim<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gender:female<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PhoneNumber:1234567<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrimaryAddress:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PostalCode:350106<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressLine1:#25-1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressLine2:SHINSAYAMA 2-CHOME<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BillingAddress:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Receiver:Ms Danielle<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PostalCode:350107<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressLine1:#167<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressLine2:NORTH TOWER HARBOUR CITY<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Customer#1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Customer ID:2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; First name:David<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Last name:Bill<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gender:male<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PhoneNumber:808182<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrimaryAddress:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PostalCode:319087<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressLine1:1033 WS St.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressLine2:Tima Road<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BillingAddress:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Receiver:Mr William<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PostalCode:672993<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressLine1:1033 WS St.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressLine2:Tima Road<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT></PRE><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;怎么样,是不是很轻松? XMLBean的威力.<BR><BR><B><SPAN style="FONT-SIZE: 16px">六、利用XMLBean写XML文件</SPAN></B><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;利用XMLBean创建一个XML文档也是一件轻而易举的事.我们再增加一个Method,<BR>&nbsp;&nbsp;&nbsp;&nbsp;请看一下的Java Class:<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;public void createCustomer() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Create Document<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomersDocument doc = CustomersDocument.Factory.newInstance();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Add new customer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomerType customer = doc.addNewCustomers().addNewCustomer();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// set customer info<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customer.setId(3);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customer.setFirstname("Jessica");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customer.setLastname("Lim");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customer.setGender("female");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customer.setPhoneNumber("1234567");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Add new address<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AddressType address = customer.addNewAddress();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Add new PrimaryAddress<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrimaryAddressType primaryAddress = address.addNewPrimaryAddress();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;primaryAddress.setPostalCode("350106");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;primaryAddress.setAddressLine1("#25-1");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;primaryAddress.setAddressLine2("SHINSAYAMA 2-CHOME");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Add new BillingAddress<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BillingAddressType billingAddress = address.addNewBillingAddress();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;billingAddress.setReceiver("Ms Danielle");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;billingAddress.setPostalCode("350107");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;billingAddress.setAddressLine1("#167");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;billingAddress.setAddressLine2("NORTH TOWER HARBOUR CITY");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File xmlFile = new File(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.save(xmlFile);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception ex) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT></PRE><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;修改main method.<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;String filename = "F://JavaTest//Eclipse//XMLBean//xml//customers_new.xml";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomerXMLBean customerXMLBean = new CustomerXMLBean(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customerXMLBean.createCustomer();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT></PRE><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;运行,打开customers_new.xml:<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Customers&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;customer&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;3&lt;/id&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;female&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;firstname&gt;Jessica&lt;/firstname&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;lastname&gt;Lim&lt;/lastname&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;phoneNumber&gt;1234567&lt;/phoneNumber&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;address&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;primaryAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;postalCode&gt;350106&lt;/postalCode&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;addressLine1&gt;#25-1&lt;/addressLine1&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;addressLine2&gt;SHINSAYAMA 2-CHOME&lt;/addressLine2&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/primaryAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;billingAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;receiver&gt;Ms Danielle&lt;/receiver&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;postalCode&gt;350107&lt;/postalCode&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;addressLine1&gt;#167&lt;/addressLine1&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;addressLine2&gt;NORTH TOWER HARBOUR CITY&lt;/addressLine2&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/billingAddress&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/address&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/customer&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Customers&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT></PRE><BR><BR><BR><FONT size=2><B><SPAN style="FONT-SIZE: 16px">七、利用XMLBean修改XML文件</SPAN></B><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;我们再增加一个Method:<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void updateCustomer(int id,String lastname) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File xmlFile = new File(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomersDocument doc = CustomersDocument.Factory.parse(xmlFile);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomerType[] customers = doc.getCustomers().getCustomerArray();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; customers.length; i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CustomerType customer = customers[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(customer.getId()==id){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customer.setLastname(lastname);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.save(xmlFile);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception ex) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT></PRE><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;main method:<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<BR>&nbsp;&nbsp;&nbsp;&nbsp; String filename = "F://JavaTest//Eclipse//XMLBean//xml//customers_new.xml";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CustomerXMLBean customerXMLBean = new CustomerXMLBean(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;customerXMLBean.updateCustomer(3,"last");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT></PRE><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;运行之后,我们将会看到客户编号为3的客户的lastname已经改为last.<BR><BR><B><SPAN style="FONT-SIZE: 16px">八、利用XMLBean删除一个customer</SPAN></B><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;再增加一个Method:<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;public void deleteCustomer(int id) {<BR>&nbsp;&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File xmlFile = new File(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp; CustomersDocument doc = CustomersDocument.Factory.parse(xmlFile);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CustomerType[] customers = doc.getCustomers().getCustomerArray();<BR><BR>&nbsp;&nbsp; for (int i = 0; i &lt; customers.length; i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomerType customer = customers[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(customer.getId()==id){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customer.setNil() ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; doc.save(xmlFile);<BR>&nbsp;&nbsp; } catch (Exception ex) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp; }<BR> </FONT></PRE><BR><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main method:<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><PRE class=overflow title="pre code"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;String filename = "F://JavaTest//Eclipse//XMLBean//xml//customers_new.xml";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CustomerXMLBean customerXMLBean = new CustomerXMLBean(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;customerXMLBean.deleteCustomer(3);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR> </FONT></PRE><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>运行,我们将会看到客户编号为3的客户的资料已经被删除.<BR><BR><B><SPAN style="FONT-SIZE: 16px">九、查询XML</SPAN></B><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;除了本文在以上讲述的,利用XMLBean能轻轻松松完成XML的读写操作外,结合XPath和XQuery,<BR>&nbsp;&nbsp; XMLBean还能完成象SQL查询数据库一样方便地查询XML数据. 关于XML查询以及如何创建XML数据库, 我将在另一篇文章里讨论.<BR><BR><BR><BR><B><SPAN style="FONT-SIZE: 16px">十、结束语</SPAN></B><BR>&nbsp;&nbsp;&nbsp;&nbsp;XMLBean能帮助我们轻易读写XML,这将有助于我们降低XML的学习和使用,有了这个基础,<BR>&nbsp;&nbsp;&nbsp;&nbsp;开发人员将为学习更多地XML相关技术和Web Services,JMS等其他J2EE技术打下良好地基础.<BR></FONT><img src ="http://www.blogjava.net/mydooom/aggbug/23506.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mydooom/" target="_blank">月风</a> 2005-12-12 16:30 <a href="http://www.blogjava.net/mydooom/archive/2005/12/12/23506.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java版本的escape和unescape函数[转] </title><link>http://www.blogjava.net/mydooom/archive/2005/12/12/23496.html</link><dc:creator>月风</dc:creator><author>月风</author><pubDate>Mon, 12 Dec 2005 07:42:00 GMT</pubDate><guid>http://www.blogjava.net/mydooom/archive/2005/12/12/23496.html</guid><wfw:comment>http://www.blogjava.net/mydooom/comments/23496.html</wfw:comment><comments>http://www.blogjava.net/mydooom/archive/2005/12/12/23496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mydooom/comments/commentRss/23496.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mydooom/services/trackbacks/23496.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: escape和unescape的java类&nbsp;&nbsp;<a href='http://www.blogjava.net/mydooom/archive/2005/12/12/23496.html'>阅读全文</a><img src ="http://www.blogjava.net/mydooom/aggbug/23496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mydooom/" target="_blank">月风</a> 2005-12-12 15:42 <a href="http://www.blogjava.net/mydooom/archive/2005/12/12/23496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新的blog新的开始!</title><link>http://www.blogjava.net/mydooom/archive/2005/12/12/23476.html</link><dc:creator>月风</dc:creator><author>月风</author><pubDate>Mon, 12 Dec 2005 06:31:00 GMT</pubDate><guid>http://www.blogjava.net/mydooom/archive/2005/12/12/23476.html</guid><wfw:comment>http://www.blogjava.net/mydooom/comments/23476.html</wfw:comment><comments>http://www.blogjava.net/mydooom/archive/2005/12/12/23476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mydooom/comments/commentRss/23476.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mydooom/services/trackbacks/23476.html</trackback:ping><description><![CDATA[<P>以前用过很多blog，如chinablog,csdn的，都觉得不太满意,今天无意逛到此地看到是和java有关的,暂时不管好不好先居之...!</P>
<P>&nbsp;</P><img src ="http://www.blogjava.net/mydooom/aggbug/23476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mydooom/" target="_blank">月风</a> 2005-12-12 14:31 <a href="http://www.blogjava.net/mydooom/archive/2005/12/12/23476.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>