太冷清了,我来占个位置

来源:4-7 应用 DOM4J 解析节点属性

吴登广

2015-08-20 17:13

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();
	//通过element对象的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("节点名为:"+element.getName()+"---节点值为:"+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("=====结束遍历某一本书=====");
	
} 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());
 }
	}

}


写回答 关注

1回答

  • icandoit940913
    2015-12-17 11:29:34
    已采纳

    ....

    吴登广

    非常感谢!

    2015-12-17 13:30:51

    共 1 条回复 >

Java眼中的XML---文件读取

通过Java认识并且创造XML文件,如何应用 Java“解析 XML

83202 学习 · 431 问题

查看课程

相似问题