首页 > 代码库 > XML解析器——DOM

XML解析器——DOM

 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;
	}
	@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";
	}
	
	
}
技术分享


技术分享

XML解析器——DOM