- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[第4章Java处理XML
DOM将文档中的所有都看作节点,因此定义了一个最基础的接口是Node,它的字接口包括Element,Attr,Text等等,还包括了 Document,也就是说DOM将整个文档看作是一个节点。 在Node中定义了很多方法, 包括了读取节点(getFirstChild(), getNextSibling(), getLastNode(), getChildNodes(), getNodeName(), getNodeType(), getNodeValue(), getParentNode(), getAttributes(), getOwnerDocuemt())、 修改节点(insertBefore(), removeChild(), appendChild(), replaceChild(), setNodeValue()),这些方法都非常常用,但是没有定义创建节点的方法, 创建节点的方法是在它的子接口Document中定义的 (createXXX()),也没有定义按节点名字来得到节点的方法,这些方法是在Element和Document中定义的 (getElementById(), getElementByTagName(), 注意在这里按照名字直接得到的是Element) 优缺点 DOM在解析文档的时候按整个文档的结构生成一棵树,全部保存在内存中,这既产生了一些优点,也产生了一些缺点。优点就是整个文档都一直在内存中,我们可 以随时访问任何节点,并且对树的遍历也是比较熟悉的操作;缺点则是耗内存,并且必须等到所有的文档都读入内存才能进行处理。一个需要注意的地方就是,XML文档两个标签之间的空白也是这棵树的一个节点(Text节点) DOM类的介绍 DocumentBuilder类 NamedNodeMap接口 NamedNodeMap接口主要方法 实现步骤: 1、创建Document 创建一个文档的过程是非常固定的,三步走 2、浏览XML文档的内容 获得Document后的第一步就是获得root element,也叫document element :getDocumentElement() 3、修改XML文档 修改包含两方面的内容,一方面是修改已有的,另一方面是创建新的节点加入到文档中去.修改已有的节点值,找到目标节点,然后调用Node.setNodeValue()就可以了,对Attr来说则是调用setValue();而修改已有的节点,则用replaceChild();删除一个节点用removeChild()。创 建新节点时,是用Document来创建的。创建好后就可以使用append()或insertBefore()来插入到合适的地方。此外 Attr总是比较特殊,为一个元素添加属性需要用setAttribute()方法,而删除属性则要用removeAttribute()方法。 4、返回值NodeList和NamedNodeMap 5、输出XML文档 例子1: NodeList和Node示例 NodeList和Node示例 使用递归解析DOM树 建立和更新XML文档2 使用XmlDocument类更新文档 使用TransformerFactory类和Transformer类更新文档 从因特网上获取天气数据示例 SAX的原理 SAX的工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。 SAX的优缺点 SAX的常用接口介绍 DTDHandler接口 EntityResolver接口 ErrorHandler接口 SAX的其他类和接口介绍 DefaultHandler类 DefaultHandler类是SAX2事件处理程序的默认基类。它继承了EntityResolver、DTDHandler、ContentHandler和ErrorHandler这四个接口。包含这四个接口的所有方法,所以我们在编写事件处理程序时,可以不用直接实现这四个接口,而继承该类,然后重写我们需要的方法。如下: XMLReader接口 XMLReader接口是使用回调读取XML文档的接口。XMLReader是XML解析器的SAX2驱动程序必须实现的接口。此接口允许应用程序设置和查询解析器中的功能和属性,注册文档的事件处理程序,以及对文档的解析。如下: Attributes接口 SAX的应用2 对复杂XML文档的解析 作业1: 1.有一个名为sql_conn.xml文件,里面有以下内容: sqlconn
文档评论(0)