下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DOM4J DOM4J DOM4J XML Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. DOM,SAX JAXP。(htmlIBMdeveloper社区的文章(参见附录XML 解析包的性能比较,其中 DOM4J (DOM4J 的官方文档中也引用了这个比较)DOM4J XML
2、 解析工具。JDOMDOM4J最大的特色是使用 DOM4JJDOM,不妨继续用下去,只看看本篇DOM4J 吧。org.dom4jAttributeXML BranchXML元素(Element)和文档(Docuemnts)定义了一个公共的CDATA XMLCDATA Comment XML XML DocumentType XMLDOCTYPE Element XML ElementHandler Element ElementHandler EntityXMLentity Node dom4j XML NodeFilter dom4j 节点中产生的一个滤镜或谓词的行为ProcessingIn
3、structionNodeFilter dom4j 节点中产生的一个滤镜或谓词的行为ProcessingInstruction XML 处理指令. Text XML 文本节点. Visitor Visitor模式. XPath XPath 表达式interface org.dom4j.Nodeinterface org.dom4j.Branchinterface org.dom4j.Elementinterface org.dom4j.CDATAinterface org.dom4j.Textinterface org.dom4j.EntityinterfaceClassCastExcepti
4、on 了。下面给出一些例子(DOM4J 自带的文档XML XMLorg.dom4j.io DOMReader SAXReader / XMLXML publicDocumentread(StringfileName)throwsMalformedURLException,DocumentException SAXReader reader = new SAXReader();Documentdocument=reader.read(newFile(fileName); return document;其中,readerreadInputStream, File, Url等多种不同的源来读取。D
5、ocument XML。XML 取得RootRoot XML XML return returnXML DOM4J 3 1) 枚举/ for(Iteratori=root.elementIterator();i.hasNext();) Element element = (Element) i.next();/do/ foo for(Iteratori=root.elementIterator(foo);i.hasNext();) Element foo = (Element) i.next();/do/ for(Iteratori=root.attributeIterator();i.has
6、Next();) Attribute attribute = (Attribute) i.next();/doIteratorpublicvoidtreeWalk()publicvoidtreeWalk(Elementelement)for(inti=0,size=element.nodeCount();isize;i+) Node node = element.node(i);if(nodeinstanceofElement) treeWalk(Element) node);else / do3)Visitor DOM4JVisitor的支持,这样可以大大缩减代码量,并且清楚易懂。了解设计模
7、式的人都知道,Visitor GOF VisitorVisitableDOM4JVisitorVisitorVisitableDOM4JVisitor模式(快速VisitorpublicclassMyVisitorextendsVisitorSupportpublicvoidvisit(Elementpublicvoidvisit(Attribute调用: root.accept(newVisitor 接口提供多种 Visit()的重载,根据 XML 不同的对象,将采用不同的方式来访问。上 注意,这个 Visitor 是自动遍历所有子节点的。如果是 root.accept(MyVisitor)
8、,将遍历子节Visitor,结果可想而知。4.XPath DOM4JXPath XPath publicvoidbar(Documentdocument)Listlist=document.selectNodes(/foo/barNodenode=document.selectSingleNode(/foo/bar/author); String name = node.valueOf( name );XHTML publicvoidfindLinks(Documentdocument)throwsDocumentExceptionList list = document.selectNode
9、s( /a/href ); for(Iteratoriter=list.iterator();iter.hasNext();)String url = attribute.getValue();5. XML XML XML Documentdocument=Stringtext=/ Stringtext=/ XML StringtextJamesDocumentdocument=6 XSLT publicDocumentString stylesheet)throwsException/loadthetransformerusingTransformer transformer = facto
10、ry.newTransformer(newStreamSource(stylesheet/nowletsstylethegivenDocumentSourcesource=newDocumentSource(document); DocumentResult result = new DocumentResult(); /returnthetransformedDocumenttransformedDoc=result.getDocument(); return transformedDoc;7. XMLStringBuffer publicDocumentcreateDocument()El
11、ement root = document.addElement(root);Elementauthor1= Element author2 = return document;8. DocumentNode8. DocumentNode write FileWriterout=newFileWriter(foo.xml publicvoidwrite(Documentdocument)throwsIOException/ new FileWriter( output.xml )/ writer = new XMLWriter( System.out, format );/ writer =
12、new XMLWriter( System.out, format );如何,DOM4JElementHandler 等。如DOM4J.DOM4J官方网站:(我老连不上) HYPERLINK / HYPERLINK /projects/dom4j Dom4j XML 及中文问题2004 9 27 20:21dom4jXMLXML文档,添加、修改、删除节点,以及格式化(美化)dom4j 的入门资料。 HYPERLINK /holen/ HYPERLINK /holen/ HYPERLINK mailto: dom4jXMLXML文档,添加、修改、删除节点,以及格式化(美化)dom4j 的入门资料
13、。1XML20011XML20017月发布1.5。dom4jJava Java 界,dom4j HYPERLINK /projects/dom4j dom4j1.5 13Mdom4j-1.5.zip 1.5.jarjaxen-1.1-beta-4.jar 文件,一般: 2XML 文档XML ?xmlversion=1.0encoding=UTF-!-Thisisatestfordom4j,holen,2004.9.11-XML 文档,场景是一个网上书店,有很多书,每本书有两个属性,一个3XML XML 文档,paramfilename return 返回操作结果0 表失败1 publicint
14、createXMLFile(String/* 返回操作结果0 表失败1 intreturnValue=/*intreturnValue=/* document Documentdocument=/* XML booksElementbooksElement=/* booksElement.addComment(Thisisatestfordom4j,holen,/* book ElementbookElement=/* show /* title ElementtitleElement=/* title /* bookbookElement=booksElement.addElement(bo
15、ok); titleElement=bookElement.addElement(title); titleElement.setText(Lucene Studing);bookElement=booksElement.addElement(book); titleElement= /* owner ElementownerElement=/* document XMLWriterwriter=newXMLWriter(newFileWriter(newFile(filename); /* 执行成功,1*/ returnValue = 1;catch(Exception ex) return
16、Documentdocument=XMLDocumentdocument=XML ElementbooksElement=XML Element 有几个重要的方法: 最后通过 XMLWriter 生成物理文件,默认生成的 XML 文件排版格式比较乱,可以通过 OutputFormat 类的 createCompactFormat()方法或 createPrettyPrint()方法格式化输出默认采createCompactFormat()方法,显示比较紧凑,这点将在后面详细谈到。holen.xml !-Thisisatestfordom4j,holen,2004.9.11-4XML 如果boo
17、k节点中show属性的内容为yes,则修改成no 把owner 项内容改为Tshinghua,并添加date 节点titleDom4jTutorials,XML 文件中内容,dom4j中如何添加节点,修改节点,paramfilename paramnewfilename return 返回操作结果0 表失败1 publicintModiXMLFile(Stringfilename,Stringnewfilename) int returnValue = 0;SAXReadersaxReader=new /* 修改内容之一: book show yes,no/* xpath Listlist=d
18、ocument.selectNodes(/books/book/showIteratoriter=Iteratoriter=修改内容之二: owner ownerdate节点,date 2004-09-11,date 节点添typelist=document.selectNodes(/books/owner); iter = list.iterator();ElementdateElement=ownerElement.addElement(date); /* 修改内容之三: titleDom4jTutorials,则删除该节点 list = document.selectNodes(/boo
19、ks/book);iter = list.iterator(); ElementbookElement=Element/* document XMLWriterwriter=newXMLWriter(newFileWriter(newFile(newfilename); /* 执行成功,1*/ returnValue = 1; return returnListlist=document.selectNodes(/books/book/show); list = document.selectNodes(/books/book);xpath5OutputFormat 类。XML 文档,para
20、mpublicintformatXMLFile(Stringfilename) int returnValue = 0;SAXReadersaxReader=newDocumentdocument=saxReader.read(newFile(filename); XMLWriter writer = null;/* 格式化输出,IE 浏览一样 OutputFormatformat=/* XML 编码 */ writer=newXMLWriter(newFileWriter(new/* 执行成功,1*/ returnValue = 1;catch(Exception ex) returnOut
21、putFormatformat=/* 执行成功,1*/ returnValue = 1;catch(Exception ex) returnOutputFormatformat=XMLWriterwriter=newXMLWriter(newFileWriter(newOutputFormat6packageimport import java.util.Iterator; import java.util.List;import import import org.dom4j.Element;import org.dom4j.io.SAXReader;import *authorHolen17:43 (4666) (2) 2 2007-08-132007-09-06FileWriter try OutputFormatformat=2007-08-132007-09-06FileWriter try OutputFormatformat=FileOutputStreamfos=new/writer=newXMLWriter(newFileWriter(xmlFile),format); writer = new XMLWriter(fos, form
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于智能算法的高中语文教师教学画像可视化研究教学研究课题报告
- 财务报销流程标准操作规程
- 食品加工企业生产流程规范与管理
- 盖梁钢管架施工技术方案标准化范文
- 2025西南亚石油钻探行业市场现状供需分析及投资评估规划分析研究报告
- 城市轨道交通运营调研报告
- 2025营销行业市场供需分析及投资评估规划分析研究报告
- 2025荷兰花卉园艺产业市场分析投资现状评估发展趋势规划研究报告
- 2025荷兰绿色农业发展模式与技术引进策略分析报告
- 2025荷兰水处理行业市场供需格局及投资可行性评估规划分析发展报告
- 2025年沈阳华晨专用车有限公司公开招聘笔试历年参考题库附带答案详解
- 2026(苏教版)数学五上期末复习大全(知识梳理+易错题+压轴题+模拟卷)
- 2024广东广州市海珠区琶洲街道招聘雇员(协管员)5人 备考题库带答案解析
- 蓄电池安全管理课件
- 建筑业项目经理目标达成度考核表
- 2025广东肇庆四会市建筑安装工程有限公司招聘工作人员考试参考题库带答案解析
- 第五单元国乐飘香(一)《二泉映月》课件人音版(简谱)初中音乐八年级上册
- 简约物业交接班管理制度
- 收购摩托驾校协议书
- 2025年浙江省中考数学试卷(含答案)
- GB/T 16294-2025医药工业洁净室(区)沉降菌的测试方法
评论
0/150
提交评论