1. 程式人生 > >dom4j遍歷巢狀xml

dom4j遍歷巢狀xml


public static void main(String[] args) throws Exception {	
String retxml = ""//需要解析的xml		
Document	dom = DocumentHelper.parseText(retxml);
Element rootElement = dom.getRootElement();// 獲取根節點:
				  getNodes(rootElement);// 呼叫遍歷節點的方法,從跟節點遍歷
}
 /** 
     * 從指定節點Element node開始,遞迴遍歷其所有子節點 
	 * @throws DocumentException 
     */  
    public static void getNodes( Element node) throws DocumentException {  
        // 當前節點的名稱、文字內容和屬性  
        System.out.println("節點名稱:" + node.getName());// 節點名稱  
        System.out.println("節點的內容:" + node.getTextTrim());// 節點內容 
        final List<Attribute> listAttr = node.attributes();// 節點的所有屬性  
//這裡是xml下body節點下面還有xml,也就是巢狀xml的。可以根據第一次遍歷輸出的節點屬性檢視
        if("body".equals(node.getName())){
        	String bodyxml=node.getTextTrim();//把body的節點內容儲存為一個xml
        	Document dom= DocumentHelper.parseText(bodyxml);
			  Element rootElement = dom.getRootElement();
			  getNodes(rootElement);再次開始遍歷
        }
        for (final Attribute attr : listAttr) {// 遍歷當前節點的所有屬性  
            final String name = attr.getName();// 屬性名稱  
            final String value = attr.getValue();// 屬性的值  
        }  
  
        // 遞迴遍歷當前節點所有的子節點  
        final List<Element> listElement = node.elements();// 所有一級子節點的list  
        for (final Element e : listElement) {// 遍歷所有一級子節點  
            getNodes(e);// 遞迴  
        }  
    }

相關推薦

dom4jxml

public static void main(String[] args) throws Exception { String retxml = ""//需要解析的xml Document dom = DocumentHelper.parseText(retxml);

【Angular2】實體生成陣列

前言 需要根據實體生成一個數組,存放初始資料 實體是ExamPaperModel(試卷),其中一個屬性為QuestionTypeList,包含的是實體QuestionTypeModel(題型),題型實體中有一個屬性為QuestionMainList,包含的是

【我的Java筆記】ArrayList集合的

例子:假設有一個年級,一個年級中存在多個班級,而班級中的每一個學生都是一個物件 ArrayList<Student>表示一個班級,而年級大的集合則可用:ArrayList<ArrayList<Student>>來表示 圖解: /*

json字串裡面的集合

// 定義jackson物件 private static final ObjectMapper MAPPER = new ObjectMapper(); private void get() throws Exception{ String response="{\

strust2 ognl或者el表示式list集合

嗯,這個問題我在網上找了一會兒沒有看到,於是就自己琢磨了一下,叫我試出來了,呵呵 思考:兩個list,在Java中需要兩個for迴圈才能遍歷出來,所以在頁面中,我們也需要兩個foreach和2個<s:iterator>才行,下面是我的可行程式碼,親測通過 &l

【Java程式設計】DOM XML Parser解析、、建立XML

1、前言 DOM XML Parser介紹 DOM 是 W3C 處理 XML 的標準 API,它是許多其它與 XML 處理相關的標準的基礎,不僅是 Java,其它諸如 Javascript,PHP,MS .NET 等等語言都實現了該標準,成為了應用最為廣泛的 XML 處理方

dom4j 所有元素和屬性

 Dom4j是java中常用讀取xml檔案的工具,就方便性和效能方面,一定程度要優於JDK中Domcument和SAX解析的。package Test; import org.dom4j.Attribute; import org.dom4j.Document; impo

JSON(不帶json陣列)轉XML(層層,xml格式為value格式)

廢話不多說,直接上程式碼 /** * 處理json資料 * @param jsonString */ public static String jsonToXmlUtil(String json

java字符串利用dom4jxml

dom4j null test element 叠代器 遍歷 pub iterator tex 1、因為轉換的格式不是標準格式,所以有時候獲得xml根目錄後rootElement.attributes() 取不到想要的屬性 所以需要通過叠代器來獲取想要的值 public s

集合思路

集合巢狀: 怎麼存? Map存放Map     HashMap1<鍵型別,值型別>     HashMap2<鍵型別,值型別> 建一個Map存放前兩個Map     Map&

用遞迴將的JSON物件出來,轉為二維陣列

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

列表介紹,迴圈,相關操作,

列表介紹 想一想: 前面學習的字串可以用來儲存一串資訊,那麼想一想,怎樣儲存咱們班所有同學的名字呢? 定義100個變數,每個變數存放一個學生的姓名可行嗎?有更好的辦法嗎? 答: 列表 <1>列表的格式 變數A的型別為列表 namesList = ['xia

c語言list

list<string>::iterator itor;  //定義迭代器   list<string> myList1;   list<string> myList2; list<list<string

高效匹配Json資料,避免迴圈

工作中經常會遇到這樣的需求:1.購物車列表中勾選某些,點選任意一項,前往詳情頁,再返回購物車依舊需要呈現勾選狀態2.勾選人員後,前往別的頁面,再次返回,人員依舊程勾選狀態3.等等.... 資料結構如下: // 快取資料 var students = [

集合儲存和元素的示例

1 /** 2 * @Auther: lzy 3 * @Date: 2018/12/12 16:07 4 * @Description: 集合巢狀儲存和遍歷元素的示例 5 */ 6 public class ListTest { 7 public static void m

javaSE (二十六)map集合(兩種方法)、輸入字元,計算字元出現次數(用map實現)、HashMapHashMap

1、map集合遍歷: map集合沒有iterator方法,所以不能直接迭代 直接看下面的程式碼和第一行的註解(加了註釋之後變黑看不清了,所以前面沒加註釋) 1、map的第一種遍歷:遍歷map的所有值:method1() 獲取所有的鍵的集合:Set<K> keySet()

Vue中v-for多層資料,不能重新渲染的問題

問題 { "properties": [ [ { "name": "property_name", "example": "travel_time", "value": "" }, { "name":

16 API-集合(List的子類(ArrayList_Vector_LinkedList,集合),JDK5新特性(泛型,增強for迴圈,靜態匯入,可變引數)

1:List的子類(掌握) (1)List的子類特點ArrayList:底層資料結構是陣列,查詢快,增刪慢執行緒不安全,效率高Vector:底層資料結構是陣列,查詢快,增刪慢執行緒安全,效率低LinkedList:底層資料結構是連結串列,查詢慢,增刪快執行緒不安全,效率高

Java中ArrayList集合儲存和

student類: package day16_Test; /* * 學生類: * 成員變數:姓名、年齡 * 成員方法 * 構造方法 * *

微信小程式多層迴圈,二級陣列

小程式中的遍歷迴圈類似於angularJS的遍歷。 二級陣列遍歷有一個坑。二級遍歷wx:for迴圈的時候,需要注意。(程式碼如下) JS程式碼: data: { groups: [ [ {