package com.newer.xml.dom;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Test {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// 使用DOM解析
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();// 构建工厂
DocumentBuilder builder = factory.newDocumentBuilder();// 从工厂获得
File file = new File("c:/books.xml");
// 解析器解析文件生成文档
Document dom = builder.parse(file);
// 开始解析
List<Book> list = new ArrayList<Book>();
NodeList nodeList = dom.getElementsByTagName("book");
System.out.println(nodeList.getLength());// 节点数
for (int i = 0; i < nodeList.getLength(); i++) {
// 获得当前节点
Element ebook = (Element) nodeList.item(i);
// 获得节点中的属性
String isbn = ebook.getAttribute("isbn");
// 获得节点的子元素的文本值
String title = ebook.getElementsByTagName("title").item(0)
.getTextContent();
NodeList li = ebook.getElementsByTagName("author");
String author = li.item(0).getTextContent();
Book book = new Book();
book.setIsbn(isbn);
book.setAuthor(author);
book.setTitle(title);
list.add(book);
System.out.println(book);
}
}
}
Book类↓
package com.newer.xml.dom;
public class Book {
private String title;
private String isbn;
private String author;
public Book() {
super();
// TODO Auto-generated constructor stub
}
public Book(String title, String isbn, String author) {
super();
this.title = title;
this.isbn = isbn;
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
@Override
public String toString() {
return "Book [title=" + title + ", isbn=" + isbn + ", author=" + author
+ "]";
}
}