dom4j解析xml实例Word格式文档下载.docx

上传人:b****6 文档编号:20463192 上传时间:2023-01-23 格式:DOCX 页数:10 大小:17.24KB
下载 相关 举报
dom4j解析xml实例Word格式文档下载.docx_第1页
第1页 / 共10页
dom4j解析xml实例Word格式文档下载.docx_第2页
第2页 / 共10页
dom4j解析xml实例Word格式文档下载.docx_第3页
第3页 / 共10页
dom4j解析xml实例Word格式文档下载.docx_第4页
第4页 / 共10页
dom4j解析xml实例Word格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

dom4j解析xml实例Word格式文档下载.docx

《dom4j解析xml实例Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《dom4j解析xml实例Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

dom4j解析xml实例Word格式文档下载.docx

journaltitle="

XMLZone"

publisher="

IBMdeveloperWorks"

articlelevel="

Intermediate"

date="

December-2001"

title>

JavaconfigurationwithXMLSchema<

/title>

author>

firstname>

Marcello<

/firstname>

lastname>

Vitaletti<

/lastname>

/author>

/article>

/journal>

/catalog>

然后使用同一个解析器修改catalog.xml,清单2是修改后的XML文档,catalog-modified.xml。

清单2.修改后的XML文档(catalog-modified.xml)

--AnXMLcatalog-->

Introductory"

October-2002"

CreateflexibleandextensibleXMLschemas<

Ayesha<

Malik<

与W3CDOMAPI相比,使用dom4j所包含的解析器的好处是dom4j拥有本地的XPath支持。

DOM解析器不支持使用XPath选择节点。

本文包括以下几个部分:

预先设置

创建文档

修改文档

预先设置

这个解析器可以从http:

//dom4j.org获取。

通过设置使dom4j-1.4/dom4j-full.jar能够在classpath中访问,该文件中包括dom4j类、XPath引擎以及SAX和DOM接口。

如果已经使用了JAXP解析器中包含的SAX和DOM接口,向classpath中增加dom4j-1.4/dom4j.jar。

dom4j.jar包括dom4j类和XPath引擎,但是不含SAX与DOM接口。

--------------------------------------------------------------------------------

回页首

创建文档

本节讨论使用dom4jAPI创建XML文档的过程,并创建示例XML文档catalog.xml。

使用import语句导入dom4jAPI类:

importorg.dom4j.Document;

importorg.dom4j.DocumentHelper;

importorg.dom4j.Element;

使用DocumentHelper类创建一个文档实例。

DocumentHelper是生成XML文档节点的dom4jAPI工厂类。

Documentdocument=DocumentHelper.createDocument();

使用addElement()方法创建根元素catalog。

addElement()用于向XML文档中增加元素。

ElementcatalogElement=document.addElement("

catalog"

);

在catalog元素中使用addComment()方法添加注释“AnXMLcatalog”。

catalogElement.addComment("

AnXMLcatalog"

在catalog元素中使用addProcessingInstruction()方法增加一个处理指令。

catalogElement.addProcessingInstruction("

target"

"

text"

在catalog元素中使用addElement()方法增加journal元素。

ElementjournalElement=catalogElement.addElement("

journal"

使用addAttribute()方法向journal元素添加title和publisher属性。

journalElement.addAttribute("

title"

"

journalElement.addAttribute("

publisher"

向article元素中添加journal元素。

ElementarticleElement=journalElement.addElement("

article"

为article元素增加level和date属性。

articleElement.addAttribute("

level"

articleElement.addAttribute("

date"

向article元素中增加title元素。

ElementtitleElement=articleElement.addElement("

使用setText()方法设置article元素的文本。

titleElement.setText("

JavaconfigurationwithXMLSchema"

在article元素中增加author元素。

ElementauthorElement=articleElement.addElement("

author"

在author元素中增加firstname元素并设置该元素的文本。

ElementfirstNameElement=authorElement.addElement("

firstname"

firstNameElement.setText("

Marcello"

在author元素中增加lastname元素并设置该元素的文本。

ElementlastNameElement=authorElement.addElement("

lastname"

lastNameElement.setText("

Vitaletti"

可以使用addDocType()方法添加文档类型说明。

document.addDocType("

null,"

file:

//c:

/Dtds/catalog.dtd"

这样就向XML文档中增加文档类型说明:

DOCTYPEcatalogSYSTEM"

如果文档要使用文档类型定义(DTD)文档验证则必须有Doctype。

XML声明<

自动添加到XML文档中。

清单3所示的例子程序XmlDom4J.java用于创建XML文档catalog.xml。

清单3.生成XML文档catalog.xml的程序(XmlDom4J.java)

importorg.dom4j.io.XMLWriter;

importjava.io.*;

publicclassXmlDom4J{

publicvoidgenerateDocument(){

Documentdocument=DocumentHelper.createDocument();

ElementcatalogElement=document.addElement("

AnXMLCatalog"

catalogElement.addProcessingInstruction("

ElementjournalElement=catalogElement.addElement("

ElementarticleElement=journalElement.addElement("

ElementtitleElement=articleElement.addElement("

titleElement.setText("

ElementauthorElement=articleElement.addElement("

ElementfirstNameElement=authorElement.addElement("

ElementlastNameElement=authorElement.addElement("

document.addDocType("

null,"

try{

XMLWriteroutput=newXMLWriter(

newFileWriter(newFile("

c:

/catalog/catalog.xml"

)));

output.write(document);

output.close();

}

catch(IOExceptione){System.out.println(e.getMessage());

}

publicstaticvoidmain(String[]argv){

XmlDom4Jdom4j=newXmlDom4J();

dom4j.generateDocument();

}}

这一节讨论了创建XML文档的过程,下一节将介绍使用dom4jAPI修改这里创建的XML文档。

修改文档

这一节说明如何使用dom4jAPI修改示例XML文档catalog.xml。

使用SAXReader解析XML文档catalog.xml:

SAXReadersaxReader=newSAXReader();

Documentdocument=saxReader.read(inputXml);

SAXReader包含在org.dom4j.io包中。

inputXml是从c:

/catalog/catalog.xml创建的java.io.File。

使用XPath表达式从article元素中获得level节点列表。

如果level属性值是“Intermediate”则改为“Introductory”。

Listlist=document.selectNodes("

//article/@level"

);

Iteratoriter=list.iterator();

while(iter.hasNext()){

Attributeattribute=(Attribute)iter.next();

if(attribute.getValue().equals("

))

attribute.setValue("

}

获取article元素列表,从article元素中的title元素得到一个迭代器,并修改title元素的文本。

list=document.selectNodes("

//article"

iter=list.iterator();

Elementelement=(Element)iter.next();

Iteratoriterator=element.elementIterator("

while(iterator.hasNext()){

ElementtitleElement=(Element)iterator.next();

if(titleElement.getText().equals("

CreateflexibleandextensibleXMLschema"

}}

通过和title元素类似的过程修改author元素。

清单4所示的示例程序Dom4JParser.java用于把catalog.xml文档修改成catalog-modified.xml文档。

清单4.用于修改catalog.xml的程序(Dom4Jparser.java)

importorg.dom4j.Attribute;

importjava.util.List;

importjava.util.Iterator;

importorg.dom4j.DocumentException;

importorg.dom4j.io.SAXReader;

publicclassDom4JParser{

publicvoidmodifyDocument(FileinputXml){

SAXReadersaxReader=newSAXReader();

Listlist=document.selectNodes("

list=document.selectNodes("

//article/@date"

JavaconfigurationwithXML

Schema"

//article/author"

ElementfirstNameElement=(Element)iterator.next();

if(firstNameElement.getText().equals("

Ayesha"

ElementlastNameElement=(Element)iterator.next();

if(lastNameElement.getText().equals("

Malik"

/catalog/catalog-modified.xml"

catch(DocumentExceptione)

{

System.out.println(e.getMessage());

catch(IOExceptione){

publicstaticvoidmain(String[]argv){

Dom4JParserdom4jParser=newDom4JParser();

dom4jParser.modifyDocument(newFile("

));

这一节说明了如何使用dom4j中的解析器修改示例XML文档。

这个解析器不使用DTD或者模式验证XML文档。

如果XML文档需要验证,可以解释用dom4j与JAXPSAX解析器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1