dom4j解析xml

dom4j中對應XML的DOM樹建立的繼承關係

  

針對於XML標準定義,對應於圖2-1列出的內容,dom4j提供了以下實現:

  

同時,dom4j的NodeType枚舉實現了XML規範中定義的node類型。如此可以在遍歷xml文檔的時候通過常量來判斷節點類型了。

 

常用API

class org.dom4j.io.SAXReader

  • read  提供多種讀取xml文件的方式,返回一個Domcument對象

interface org.dom4j.Document

  • iterator  使用此法獲取node
  • getRootElement  獲取根節點

interface org.dom4j.Node

  • getName  獲取node名字,例如獲取根節點名稱爲bookstore
  • getNodeType  獲取node類型常量值,例如獲取到bookstore類型爲1——Element
  • getNodeTypeName  獲取node類型名稱,例如獲取到的bookstore類型名稱爲Element

interface org.dom4j.Element

  • attributes  返回該元素的屬性列表
  • attributeValue  根據傳入的屬性名獲取屬性值
  • elementIterator  返回包含子元素的迭代器
  • elements  返回包含子元素的列表

interface org.dom4j.Attribute

  • getName  獲取屬性名
  • getValue  獲取屬性值

interface org.dom4j.Text

  • getText  獲取Text節點值

interface org.dom4j.CDATA

  • getText  獲取CDATA Section值

interface org.dom4j.Comment

  • getText  獲取註釋 
  public static Map<String,String> readStringXmlOut(String xml) {
	         Map<String,String> map = new HashMap<String,String>();
	         Document doc = null;
	         try {
	            // 將字符串轉爲XML            
	        	 doc = DocumentHelper.parseText(xml); 
	            // 獲取根節點           
	        	 Element rootElt = doc.getRootElement(); 
	             // 拿到根節點的名稱         
	        	 Iterator iters = rootElt.elementIterator("user"); 
	             // 遍歷根節點           
	        
	              while (iters.hasNext()) {
	                 Element itemEle = (Element) iters.next();
	              String usercode = itemEle.elementTextTrim("user_code"); 
	               String username = itemEle.elementTextTrim("user_name");
	               String terminalid = itemEle.elementTextTrim("terminal_id");
	               String op = itemEle.elementTextTrim("op");
	                   map.put("usercode", usercode);
	                   map.put("username", username);
	                   map.put("op", op);
	                
	           }
	        	 
	              Iterator iterop = rootElt.elementIterator("op"); 
	              while (iterop.hasNext()) {
	            	  Element itemEle = (Element) iterop.next();
	            	  String op= itemEle.getTextTrim();
	            	  map.put("op", op);
	              }
	        	 return map;
	        } catch (Exception e) {
	          return null;
	       }
	     }


發佈了39 篇原創文章 · 獲贊 35 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章