使用DOM4J解析XML文件的两种方法

来源:互联网 发布:普吉岛带什么东西 知乎 编辑:程序博客网 时间:2024/04/30 05:33



import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 使用DOM4J解析phones.xml
 * @author Administrator
 *
 */
public class DOM4Jdemo {

 public static void main(String[] args) {
  SAXReader saxReader =new SAXReader();
  try {
   //获取DOM树:document对象
   Document doc=saxReader.read("src\\book2\\unit6\\phones.xml");
   //拿到DOM树的根元素
   Element root=doc.getRootElement();
   //方法一:使用Iterator
   //Iterator elementIterator()获取Iterator对象
   //String attributeValue("属性名"):根据属性名拿到属性的值
//   Iterator<Element> itr=root.elementIterator();
//   while(itr.hasNext()){
//    Element elements=itr.next();
//    System.out.println(elements.attributeValue("name"));
//    Iterator<Element> childs=elements.elementIterator();
//    while(childs.hasNext()){
//     Element child=childs.next();
//     System.out.println("\t"+child.attributeValue("name"));
//    }
//   }
   //方法二:使用List
   //list elements()方法获取元素或子元素的集合。
   //String attributeValue("属性名"):根据属性名拿到属性的值
   List<Element> brands=root.elements();
   //增强型for遍历brand元素:
   for(Element brand:brands){
    System.out.println(brand.attributeValue("name"));
    //增强型for遍历子元素:
    List<Element> types=brand.elements();
    for(Element type:types){
     System.out.println("\t"+type.attributeValue("name"));
    }
   }   
  } catch (DocumentException e) {
   e.printStackTrace();
  }
 }

}

0 0