欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    domj解析XML文档.ppt

    • 资源ID:70105189       资源大小:253.49KB        全文页数:30页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    domj解析XML文档.ppt

    第四卷:第四卷:XML解析器DOM4J第一次实验报告提交n提交内容:本周实验内容(DOM4J)n上交时间:第十二周小课上交打印稿n提交对象:学号尾号为1、3、5、7、9的同学。n其余同学提交电子版到FTP。内容回顾q描述SAX的基本内容q描述SAX的事件驱动模型q解释SAX解析器是如何工作的q列出SAX接口并描述相关的方法q与DOM之间的比较DOM4J解析XML文档学 习 目 标q掌握dom4j的概念和特点q掌握dom4j的常用接口q熟练掌握使用dom4j解析XML文档q熟练掌握使用访问者模式遍历XML文档q掌握使用dom4j创建和修改XML文档JAXP虽然在DOM和SAX解析机制上进行了一定的抽象,但是对XML解析非常繁琐,编程代码冗长,可读性不高。因此在JAVA领域出现了两个开源的XML解析器:dom4j和JDOM。dom4j的开发者说:使用dom4j来解析XML文档,无须参考任何图书,只要有基本的DOM概念,那么对着dom4j的API文档即可使用dom4j解析。dom4j概述 dom4j是一套开源的XML解析工具,完全支持DOM、SAX和JAXP机制。与它们相比,dom4j更为简单易用,因此实际项目中往往选择dom4j作为XML解析器。dom4j没有提供其他语言版本,只提供JAVA语言版本。dom4j的封装和优势dom4j在很大程序上简化了XML的处理方式。从表面上看,dom4j有点类似于DOM解析机制,也将XML文档转换为一棵结构化树(dom4j树),但dom4j树的处理方式比DOM树更为简单。由于dom4j如此优秀,很多优秀的开源项目都采用dom4j作为XML解析器,在实际的开发过程中,它通常是首选。面向接口编程 它的实质是以其他XML解析器为基础,dom4j采用面向接口编程的方式来处理XML文档解析,这就允许dom4j的底层可以在不同的解析机制之间自由切换。支持多种解析机制DOMReader:它负责根据W3C的DOM树创建dom4j树SAXReader:它基于SAX解析机制来分析一份XML文档,并将其转换为dom4j树XPP3Reader:其底层需要依赖于XML Pulll Parser 3.x来解析XML文档,并将其转换为dom4j树XPPReader:其底层需要依赖于XML Pulll Parser 2.x来解析XML文档,并将其转换为dom4j树 疯狂XML讲义 扫雷 乒乓球/获取list元素下的所有子元素NodeList itemList=list.getChildNodes();/遍历每个子元素for(int I=0;IitemList.getLength();I+)System.out.println(itemList.item(j).getTextContent().trim();在获取在获取节点之后,如果希望获取它包含的节点之后,如果希望获取它包含的3个子节点的数个子节点的数据,需要使用如下代码据,需要使用如下代码这种处理方式很是繁琐,这种处理方式很是繁琐,list元素调用元素调用getChildNodes()方法返回该方法返回该元素的所有子节点,而不是所有的子元素,这使得程序的处理过元素的所有子节点,而不是所有的子元素,这使得程序的处理过程非常繁琐。程非常繁琐。/获取list元素下的所有子元素List itemList=list.elements();/遍历每个子元素for(int I=0;I+element.getText();/定义一个方法处理指定元素的所有属性public static void parseAttribute(Element ele)/获取Element元素的所有属性List attList=ele.attributes();/遍历Element元素每个属性 for(Object e:attList)Attribute attr=(Attribute)e;/访问当前元素的每个属性的属性值System.out.println(ele.getQName().getName()+元素的+attr.getQName().getName()+属性值为:+attr.getValue();使用访问者遍历XML文档【重点掌握】dom4j的Node接口中定义了一个accept(Visitor vistor)方法,由于该方法是在Node接口中定义的,因此dom4j树中的任何节点都可以调用该方法,调用该方法时传入的Visitor对象将负责处理该节点及其所有子节点的信息。Visitor接口和VisitorSupport类的关系就像事件监听接口和事件适配器一样。VisitorSupport类实现了Visitor接口,并为每个方法提供了空实现。当开发者通过继承VisitorSupport类来实现自己的Visitor时就可以只重写自己关系的方法,从而避免重写Visitor接口里的所有方法。Vistor接口的方法简单说明visit(Attribute node)当Visitor对象访问属性节点时将回调该方法visit(CDATAnode)当Visitor对象访问CDATA片段时将回调该方法visit(Comment node)当Visitor对象访问注释节点时将回调该方法visit(Document document)当Visitor对象访问文档根节点时将回调该方法visit(DocumentType documentType)当Visitor对象访问DTD内容将回调该方法visit(Element node)当Visitor对象访问元素节点将回调该方法visit(Entity node)当Visitor对象访问Entity节点将回调该方法visit(Namespace namespace)当Visitor对象访问命名空间时回调该方法visit(ProcessingInstruction node)当Visitor对象访问处理指令时回调该方法visit(Text node)当Visitor对象访问文档内容时将回调该方法class YeekuVistor extends VisitorSupportprivate String currentElement;/保存当前正在处理的节点 /当Visitor访问元素时回调该方法 public void visit(Element node)if(node.isTextOnly()/如果节点内容全部是文本System.out.println(node.getName()+元素的值是:+node.getText();currentElement=node.getName();/当Visitor访问属性时回调该方法public void visit(Attribute node)System.out.println(currentElement+元素的+node.getName()+属性的值是:+node.getText();/当Visitor访问处理指令时回调该方法public void visit(ProcessingInstruction node)System.out.println(处理指令+node.getTarget()+的内容是:+node.getText();public class VisitorReadpublic static void main(String args)throws ExceptionSAXReader reader=new SAXReader();Document doc=reader.read(new File(book.xml);/使用访问者模式来访问XML文档doc.accept(new YeekuVistor();Visitor里只实现里只实现visit(Element node)、visit(Attribute node)和和visit(ProcessingInstruction node)3个方法,这意味着该个方法,这意味着该Vistor只处理只处理XML文档里的元素,属性和处理指令。文档里的元素,属性和处理指令。注意 访问者模式依然有点类似于事件机制的解析方式。区别是:访问者模式里的Vistor对象既充当解析器,也充当事件监听器。当使用Vistor访问XML文档时,访问不同的节点元素时将自动触发Vistor里对应的方法。使用dom4j来创建XML文档也是非常简单的,dom4j提供了DocumentFactory工具类用于创建一个新的Document对象。得到新的Document对象之后,可按如下步骤提供所需的XML文档。以Document为根,不断地添加增加的元素节点为需要增加的属性节点添加适合的属性,并设置属性值不断重复上面2个步骤,即可以得到一棵内存dom4j树得到dom4j树之后,使用XMLWriter将dom4j树输出到指定文件即可得到一份XML文档使用dom4j创建XML文档【重点掌握】书籍00书籍110书籍220书籍330创建创建Document对象对象为每个子节点添加为每个子节点添加“isbn”属性和属性值属性和属性值为为Document对象增加一个处理指令节点对象增加一个处理指令节点为为Document对象增加一个根节点对象增加一个根节点为根节点添加两个子节点和其文本内容为根节点添加两个子节点和其文本内容为根节点添加为根节点添加4个子节点个子节点创建创建Doucment对象对象DocumentFactory factory=new DocumentFactory();Document doc=factory.createDocument();向向Doucment对象添加一个处理指令对象添加一个处理指令doc.addProcessingInstruction(crazyit,website=http:/www.crazyit.org);向向Doucment对象添加根元素对象添加根元素Element root=doc.addElement(书籍列表);向向Doucmentd对象添加四个元素对象添加四个元素for(int i=0;i 4;i+)Element pcBook=root.addElement(“计算机书籍”);pcBook.addAttribute(isbn,Math.round(Math.random()*1000)+);Element name=pcBook.addElement(书名);name.setText(书籍+i);Element price=pcBook.addElement(价格);price.setText(i*10+);从上面的程序可以看出,使用dom4j创建XML文档其实非常简单,程序员只要将Document当成“树根”,然后通过该“树根”不断地“长出”新节点,每个新节点又可重新“长出”新节点,这样就可最终得到一颗内存中的dom4j树,最后使用XMLWriter输出dom4j树即可。使用dom4j修改XML文档【重点掌握】使用dom4j可以非常方便地修改XML文档,步骤如下:解析XML文档,将XML文档转换成dom4j树利用dom4j树提供的导航方法找到需要修改的节点修改指定节点,或为指定节点添加新的子节点输出修改过的dom4j树setStripWhitespaceText:设置解析器将XML元素里相邻的字符串内容合并在一起进行处理setMergeAdjacentText:设置解析器忽略XML元素开始标签和结束标签之间的空白默认情况下,dom4j解析器保留XML元素开始标签和结束标签之间的空白(包括空格,制表符和回车等),因此使用dom4j解析器先解析再输出时,XML文档内容会变得比较难看。这两个方法可以使得输出XML文档将会保持良好的格式。态度决定命运,专注成就人生!态度决定命运,专注成就人生!Thanks!

    注意事项

    本文(domj解析XML文档.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开