1)DOM(JAXP 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;
}
@Override
public 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;
}
@Override
public 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;
}
@Override
public String toString() {
return id+"\t"+bookName+"\t"+price+"\t"+bookPub+"\n";
}
}