XML解析器——DOM

来源:互联网 发布:淘宝手机版联系客服 编辑:程序博客网 时间:2024/06/01 13:22

 1DOMJAXP Crimson解析器) 
    DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。

2)

 Dom解释器是由W3C官方制定的标准解释器Api.只要符合该标准的编程接口都可以用来操作XML.目前该解释器主要有三个级别.Level1 Level2 Level3 这里只讨论到Level2. Dom模型实际上是把XML文件中的数据转变成了内存中的一颗树.该树大体有Doument,  Note, NodeList,  Element这些对象构成.Dom则是负责分析这颗树的结构,然后通过解释树从而起到了解释XML文档的作用.

下面来看实例:


对应的javabean

package com.lr.bean;public class BookInfo {private String id;private String bookName;private String price;private String bookPub;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public String getPrice() {return price;}public void setPrice(String price) {this.price = price;}public String getBookPub() {return bookPub;}public void setBookPub(String bookPub) {this.bookPub = bookPub;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result+ ((bookName == null) ? 0 : bookName.hashCode());result = prime * result + ((bookPub == null) ? 0 : bookPub.hashCode());result = prime * result + ((id == null) ? 0 : id.hashCode());result = prime * result + ((price == null) ? 0 : price.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;BookInfo other = (BookInfo) obj;if (bookName == null) {if (other.bookName != null)return false;} else if (!bookName.equals(other.bookName))return false;if (bookPub == null) {if (other.bookPub != null)return false;} else if (!bookPub.equals(other.bookPub))return false;if (id == null) {if (other.id != null)return false;} else if (!id.equals(other.id))return false;if (price == null) {if (other.price != null)return false;} else if (!price.equals(other.price))return false;return true;}@Overridepublic String toString() {return id+"\t"+bookName+"\t"+price+"\t"+bookPub+"\n";}}



0 0