package?com.imooc.dom4jtest;
import?java.io.File;
import?java.util.ArrayList;
import?java.util.Iterator;
import?java.util.List;
import?org.dom4j.Attribute;
import?org.dom4j.Document;
import?org.dom4j.DocumentException;
import?org.dom4j.Element;
import?org.dom4j.io.SAXReader;
public?class?DOM4JTest?{
private?static?ArrayList<Book>?Books=new?ArrayList<Book>();
/**
?*?@param?args
?*/
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
?SAXReader?reader=new?SAXReader();
?
?try?{
Document?document=reader.read(new?File("Books.xml"));
Element?bookstore=document.getRootElement();
//通過(guò)element對(duì)象的elementIterator方法獲取迭代器
Iterator?it=bookstore.elementIterator();?
while(it.hasNext()){
Book?book2=new?Book();
System.out.println("=====開始遍歷某一本書=====");
Element?book=(Element)?it.next();
????????List<Attribute>attrsList=book.attributes();
????????for?(Attribute?attribute?:?attrsList)?{
???????? if(attribute.getName().equals("id")){
???????? book2.setId(attribute.getValue());
???????? }
System.out.println("屬性名為:"+attribute.getName()+"---屬性值為:"+attribute.getValue());
}
????????Iterator?itt=book.elementIterator();
????????while(itt.hasNext()){
???????? Element?element=(Element)?itt.next();
???????? System.out.println("節(jié)點(diǎn)名為:"+element.getName()+"---節(jié)點(diǎn)值為:"+element.getStringValue());
???????? if(element.getName().equals("name")){
???????? book2.setName(element.getStringValue());
???????? }
???????? if(element.getName().equals("author")){
???????????? book2.setAuthor(element.getStringValue());
???????? }
???????????? if(element.getName().equals("year")){
???????????????? book2.setYear(element.getStringValue());
???????????? }
???????????????? if(element.getName().equals("language")){
???????????????????? book2.setLanguage(element.getStringValue());
???????????????? }
???????????????????? if(element.getName().equals("price")){
???????????????????????? book2.setPrice(element.getStringValue());
???????????????????? }
???????? }
????????Books.add(book2);
????????book2=null;
????????}
???? System.out.println("=====結(jié)束遍歷某一本書=====");
}?catch?(DocumentException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
?System.out.println("共有"+Books.size()+"本書");
?for?(Book?book?:?Books)?{
??????System.out.println("id:"+book.getId());
??????System.out.println("name:"+book.getName());
??????System.out.println("year:"+book.getYear());
??????if(book.getAuthor()!=null){
??????System.out.println("author:"+book.getAuthor());}
??????if(book.getLanguage()!=null){System.out.println("language:"+book.getLanguage());}
??????System.out.println("price:"+book.getPrice());
?}
}
}
2015-12-17
....