XML---DOM4J解析XML文件

来源:互联网 发布:银联数据服务有限公司 编辑:程序博客网 时间:2024/03/29 01:11

[java] view plaincop    
  1. import java.io.File;  
  2. import java.util.Iterator;  
  3. import java.util.List;  
  4.   
  5. import org.dom4j.Document;  
  6. import org.dom4j.DocumentException;  
  7. import org.dom4j.Element;  
  8. import org.dom4j.io.SAXReader;  
  9. import org.junit.Test;  
  10.   
  11. public class Dom4jTest {  
  12.     @Test  
  13.     public void test() throws DocumentException {  
  14.         // 创建文件对象  
  15.         File file = new File("src/dom4j/sida.xml");  
  16.         // 得到document对象  
  17.         Document document = parse(file);  
  18.         // 获取文档根节点  
  19.         Element root = document.getRootElement();  
  20.         // System.out.println("根节点名:"+root.getName());  
  21.         // nodeChild(root);  
  22.         listNode(root);  
  23.     }  
  24.   
  25.     public Document parse(File file) throws DocumentException {  
  26.         // 读取XML文件,获得document对象  
  27.         SAXReader reader = new SAXReader();  
  28.         Document document = reader.read(file);  
  29.         return document;  
  30.     }  
  31.   
  32.     public void nodeChild(Element element) {  
  33.         // 得到指定ID的元素节点对象  
  34.         Element el = element.elementByID("x001");  
  35.         System.out.println(el);  
  36.         // 得到指定标签名的元素节点对象  
  37.         Element elem = element.element("西游记");  
  38.         System.out.println(elem.getName());  
  39.   
  40.         // 得到指定元素名的元素集合  
  41.         List<Element> list = elem.elements("作者");  
  42.         for (Element e : list) {  
  43.             System.out.println(e.getName());  
  44.         }  
  45.         System.out.println();  
  46.     }  
  47.   
  48.     public void listNode(Element element) {  
  49.         // 得到子元素对象迭代器  
  50.         Iterator<Element> it = element.elementIterator();//子节点的集合的迭代器  
  51.         // 判断是否含有下一个元素  
  52.         while (it.hasNext()) {  
  53.             // 得到迭代其中的每一个元素  
  54.             Element el = it.next();  
  55.             // 输出  
  56.             System.out.println(el.getName());  
  57.             // 迭代处理  
  58.             listNode(el);  
  59.         }  
  60.     }  
  61.   
  62. }  

XML文件

[html] view plaincopy
  1. <!DOCTYPE 四大名著[  
  2. <!ELEMENT 四大名著 (西游记,红楼梦)>  
  3. <!ATTLIST 西游记 id ID #IMPLIED>  
  4. ]>  
  5. <四大名著>  
  6.     <西游记 id="x001">  
  7.         <作者>  
  8.             <姓名>吴承恩</姓名>  
  9.             <性别></性别>  
  10.         </作者>  
  11.     </西游记>  
  12.     <红楼梦 id="x002">  
  13.         <作者>曹雪芹</作者>  
  14.     </红楼梦>  
  15. </四大名著>  









原创粉丝点击