欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Java中的XML编程.ppt

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

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

    Java中的XML编程.ppt

    第9章 Java中的XML编程,9.1 使用DOM解析XML,解析器工厂类DocumentBuilderFactory DocumentBuilderFactory类是DOM中的解析器工厂类,开发这要使用DOM操作XML首先必须需要建立一个解析器工厂实例,以便利用这个工厂类实例来获得一个具体的解析器对象。示例代码如下:DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();,9.1 使用DOM解析XML,解析器类DocumentBuilder DocumentBuilder类是DOM中的解析器类,开发者可以使其从XML文档获取DOM文档实例。当获得一个解析器工厂类对象后,使用它的静态方法newDocumentBuilder()将可以获得一个DOM解析器对象,示例代码如下:DocumentBuilder db=dbf.newDocumentBuilder();,文档树模型Document,Document对象代表了一个XML文档的树模型。所有其它的Node,都以一定的顺序包含在Document对象之内,排列成一个树形的结构。解析器类DocumentBuilder的parse()方法接受一个XML文档名作为输入参数,将返回一个Document实例 示例代码:Document doc=db.parse(message.xml);,此外还可以把要解析的XML文档转化为输入流,然后将输入流对象作为parse()方法的输入参数,以便DOM解析器解析它,示例代码如下:InputStream is=new FileInputStream(message.xm);Document doc=db.parse(is);使用Document对象的getElementsByTagName()方法,可以得到一个NodeList对象,一个Node对象代表了一个XML文档中的一个标签元素,而NodeList对象所代表的是一个Node对象的列表。NodeList nl=doc.getElementsByTagName(message);,主要的方法有:createAttribute(String):用给定的属性名创建一个Attr对象,并可在其后使用setAttributeNode方法来放置在某一个Element对象上面。createElement(String):用给定的标签名创建一个Element对象,代表XML文档中的一个标签,然后就可以在这个Element对象上添加属性或进行其它的操作。createTextNode(String):用给定的字符串创建一个Text对象,Text对象代表了标签或者属性中所包含的纯文本字符串。如果在一个标签内没有其它的标签,那么标签内的文本所代表的Text对象是这个Element对象的唯一子对象。getElementsByTagName(String):返回一个NodeList对象,它包含了所有给定标签名字的标签。getDocumentElement():返回一个代表这个DOM树的根节点的Element对象,也就是代表XML文档根元素的那个对象。,节点列表类NodeList,节点列表类NodeList就是代表了一个包含一个或者多个Node的列表。可以简单的把它看成一个Node的数组,可以通过下列方法来获得列表中的元素:GetLength():返回列表的长度。Item(int):返回指定位置的Node对象。可以使用NodeList对象的item()方法来得到列表中的每一个Node对象,节点类Node,Node对象代表了文档树中的一个抽象的节点。Node对象所包含的主要的方法有:appendChild(org.w3c.dom.Node):添加一个子节点,并放在所有子节点的最后,如果这个子节点已经存在,则先把它删掉再添加进去。getFirstChild():如果节点存在子节点,则返回第一个子节点,getLastChild()方法返回最后一个子节点。getNextSibling():返回在DOM树中这个节点的下一个兄弟节点,getPreviousSibling()方法返回其前一个兄弟节点。getNodeName():根据节点的类型返回节点的名称。getNodeType():返回节点的类型。getNodeValue():返回节点的值。,节点类Node,hasChildNodes():判断是不是存在有子节点。hasAttributes():判断这个节点是否存在有属性。getOwnerDocument():返回节点所处的Document对象。insertBefore(org.w3c.dom.Node new,org.w3c.dom.Node ref):在给定的一个子对象前再插入一个子对象。removeChild(org.w3c.dom.Node):删除给定的子节点对象。replaceChild(org.w3c.dom.Node new,org.w3c.dom.Node old):用一个新的Node对象代替给定的子节点对象。要提取message标签内的内容,通常会使用Node对象的getNodeValue()方法:,元素类Element,Element对象所包含的主要的方法有:getElementsByTagName(String):返回一个NodeList对象,它包含了在这个标签中其下的子孙节点中具有给定标签名字的标签。getTagName():返回一个代表这个标签名字的字符串。getAttribute(String):返回标签中给定属性名称的属性的值。在这儿需要主要的是,应为XML文档中允许有实体属性出现,而这个方法对这些实体属性并不适用。这时候需要用到getAttributeNodes()方法来得到一个Attr对象来进行进一步的操作。getAttributeNode(String):返回一个代表给定属性名称的Attr对象。,属性类Attr,Attr对象代表了某个标签中的属性。Attr继承于Node,但是因为Attr实际上是包含在Element中的,它并不能被看作是Element的子对象,因而在DOM中Attr并不是DOM树的一部分Attr其实是被看作包含它的Element对象的一部分,它并不作为DOM树中单独的一个节点出现。这一点在使用的时候要同其它的Node子对象相区别。,解析器工厂类DocumentBuilderFactory,解析器类DocumentBuilder,文档对象Document,元素Element,属性Attr,节点Node,节点集NodeList,9.2 使用SAX解析XML,SAX是事件驱动的,SAX解析的方式非常类似流媒体的分析处理方式,这种解析模式能够随着文档的读入过程立即开始解析,而不需要等待文档中所有的数据被读入结束后再开始解析。适合于内存较小的应用场合。除此之外,应用程序甚至不必解析整个文档,它可以在某个条件得到满足时停止解析后面的文档。SAX解析XML文档的基本原理为:首先获得一个实现SAX接口的解析器,然后编写一个符合SAX标准的处理器类,并且把这个类注册到刚生成的解析器,然后开始解析XML文件,解析器会把XML文档作为一个流读出来,并将文件流转换成一个事件流,最后根据事件调用定义在解析器里的事件处理方法对流中的事件做出响应。,SAX的事件驱动模型,五种事件,startDocument:表明SAX解析器发现了文档的开始 public void startDocument()endDocument:表明SAX解析器已经发现了xml文档的结尾 public void endDocument()startElement:SAX解析器发现了xml文件中的一个元素的开始标签,同时返回该元素的名称以及元素属性的名称 public void startElement(String namespace,string localname,String qName,Attribute atts),元素的非限定名,元素的限定名,有命名空间前缀,元素所有属性,五种事件,endElement:表明SAX解析器发现了xml文档中一个元素的结束标签,返回元素的名称和相关的命名空间 public void endElement(String namespace,String localName,String qName)Character:表明SAX解析器发现了xml文档中的一个元素的文本信息,返回一个字符串数组、数组的偏移量和一个长度变量,通过这些访问到所发现的文本信息。public void character(char ch,int start,int length),Java SAX的API,SAXParserFactory:一个根据系统属性生成parser实例的解析器工厂类。其功能与DOM中的DocumentBuilderFactory类相同。SAXParser:一个定义了不同种类的parser()方法的接口。SAXParser是一个与SAX事件通讯的处理器,可以使用自定义的handler来处理事件。SAXReader:SAXParser中包含了一个SAXReader,当要使用SAXReader的getXMLReader()方法的时候就需要配置它。DefaultHandler:类DefaultHandler实现了ContentHandler、ErrorHandler、DTDHandler和EntityResolver接口,通过继承这个类,我们可以实现解析XML文档的所有任务。,Java SAX的API,ContentHandler:当遇到XML文档中的标签时,就将会调用这个接口中的startDocument、endDocument、startElement和 endElement 方法。当遇到XML文档中的元素内容时,将调用characters方法。ErrorHandler:当遇到不同类型的错误的时候分别调用相应的错误方法,这些方法包括:error、fatalError和warning等。DTDHandler:该接口所定义的方法只用在处理DTD信息的时候。EntityResolver:该接口中的resolveEntity方法只在遇到URI标识数据的时候才调用。,9.3 使用JDOM解析XML,JDOM是一个开源项目,它基于树型结构,利用纯Java的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM直接为Java编程服务。它利用更为强有力的Java语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。JDOM中的类主要包括SAXBuilder、DOMBuilder、Document、XMLOutputter、Element和Attribute等,JDOM的API,SAXBuilder类 JDOM中的SAXBuilder类会使用SAX来建立一个JDOM的解析树。它可以通过build()方法由指定的输入数据流建立一个文件,返回一个Document对象。DOMBuilder类 JDOM中的DOMBuilder类会使用DOM来建立一个JDOM的解析树。它可以通过build()方法由指定的输入数据流建立一个文件,返回一个Document对象。Document类 Document类的一个实例用来描述一个XML文档。这个文档类是轻量级的,它可以包括文档类型、处理指令对象、根元素和注释对象等内容。,JDOM的API,构造一个包含根元素的Document对象 Element root=new Element(“books”);Document doc=new Document(root);root.setText(“书”);XMLOutPutter类 将XML文档写入一个特定的OutputStream流中。其中output()方法用于将XML文档输出到指定的位置,既可以是标准的输出System.out,也可以是File对象或者OutputStream对象。XMLOUTPutter outp=new XMLOUTPutter();outp.output(doc,System.out);,JDOM的API,Element类 在JDOM中,XML元素就是Element类的实例。Element类有两种主要的操作,一个是浏览元素树,另一个是移动元素。获得根元素Element root=doc.getRootElement();获得根元素的所有子元素的一个列表List allChildren=root.getChildren();通过名字获得指定的子元素列表List namedChildren=root.getChildren(name);根据指定名称得到第一个元素Element child=root.getChild(name);,JDOM的API 2-2,List allChildren=root.getChildren();/删除第四个元素allChildren.remove(3);/删除所有名称是jack的子元素allChildren.removeALL(root.getChildren(jack);/在集合末尾添加新元素allChildren.add(new Element(tom);/在集合开头添加新元素allChildren.add(0,new Element(sun);Attribute类 可以使用Element类的getAttribute()方法来取得一个元素的属性,该方法会返回一个Attribute对象。Attribute类提供了getValue()方法,它将会以字符串的形式返回一个属性值。,开发前准备:1、在安装包 2、将安装包中的jdom.jar文件添加到eclipse库中举例,9.4 本章小结,本章主要介绍了Java XML程序设计的基础知识,详细讲解了DOM编程、SAX编程和JDOM编程的基本流程和常用方法,

    注意事项

    本文(Java中的XML编程.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开