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"; } }
时间: 2024-10-13 04:21:48