dom4j

dom4j 是一个java的xml api,类似jdom,用来读写xml文件。

JDOM解析器:

Dom4j:

1.读取XML文件:SAXReader reader=new SAXReader();

        Document document=reader.read(new File("input.xml"));

 

附录:1.cannot make a static reference to a non-static method

因为,非静态的变量是依赖于对象存在的,对象必须实例化之后,它的变量才会在内存中存在。而静态成员不依赖于对象存在,即使是类所属的对象不存在,也可以被访问,它对整个进程而言是全局的。

2.string 比较 compareTo, equals

A.equals(B); 是值的比较,但当A是某个返回值时就不得不先要确定是否为null,所以比较安全的做法是B.equals(A) 这样如果A是 null 返回值为false

compareTo的返回值 是 0 1 -1

 

 1 import org.dom4j.io.SAXReader;
 2 import org.dom4j.Document;
 3 import org.dom4j.DocumentException;
 4 import org.dom4j.Element;
 5 import org.dom4j.Node;
 6 
 7 import java.io.InputStream;
 8 import java.util.Iterator;
 9 import java.util.List;
10 
11 
12 public class testdom {
13     
14     public static Document parse2Document(String xmlFilePath){
15         SAXReader reader=new SAXReader();
16         Document document=null;
17         try{
18             InputStream in=testdom.class.getResourceAsStream(xmlFilePath);
19             document=reader.read(in);
20         }catch (DocumentException e){
21             System.out.println(e.getMessage());
22             e.printStackTrace();
23         }
24         return document;
25     }
26     public static void testParseXMLData(String xmlFileName){
27         
28         SAXReader reader=new SAXReader();
29         Document document=parse2Document(xmlFileName);
30         Element root=document.getRootElement();
31         getElementList(root);
32         /*StringBuffer sb=new StringBuffer();
33         sb.append("通过Dom4j解析xml,并输出数据:\n");
34         sb.append(xmlFileName+"\n");
35         sb.append("---------遍历start-----------\n");
36         for (Iterator i_pe=root.elementIterator();i_pe.hasNext();){
37             Element e_pe=(Element) i_pe.next();
38             String person=e_pe.getName();//name for what?就是element的名字
39             String id=e_pe.attributeValue("id");
40             String sex=e_pe.attributeValue("sex");
41             String name=e_pe.element("name").getText();
42             String age=e_pe.element("age").getText();
43             
44             sb.append(person+":\n");
45             sb.append("\tid="+id+"sex="+sex+"\n");
46             sb.append("\t"+"name="+name+"age="+age+"\n");
47             
48             Element e_adds=e_pe.element("adds");
49             sb.append("\t"+e_adds.getName()+"\n");
50         }
51         System.out.println(sb.toString());*/
52     }
53     public static void getElementList(Element element){
54         List elements=element.elements();
55         if (elements.size()==0){
56             //System.out.println("IN THE LEAF"+element.getName());
57         }else{
58             
59             String ok="ok";
60             if(ok.equals(element.attributeValue("node-type"))){
61                 //System.out.println(element.attributeValue("node-type"));
62                 System.out.println(element.element("span").getText());
63             }else{
64                 for(Iterator it=elements.iterator();it.hasNext();){
65                     Element elem=(Element)it.next();
66                     getElementList(elem);
67                 }
68             }
69         }
70     }
71     
72     public static void main(String args[]){
73         testParseXMLData("/test2.xml");
74     }
75     
 }

 

 将string 变为document

import org.dom4j.Document;


import org.dom4j.DocumentException;


import org.dom4j.DocumentHelper;

try {
Document doc = DocumentHelper.parseText("<root></root>");
} catch (DocumentException e) {
e.printStackTrace();
}

 

posted on 2013-02-03 10:01  lauraxia  阅读(336)  评论(0编辑  收藏  举报

导航