java遞迴多層 多節點 xml和map互相轉換

2021-08-25 17:20:25 字數 2319 閱讀 7183

具體見**

呼叫方法:

第一種map轉xml:createxmlbymap(mapmap,string parentname);

第二種map轉xml:movemaptoxml(map<?, ?> map);

第一種xml轉map: createmapbyxml(string xml);

/**

* 將map轉換為xml,map可以多層轉

* @param params 需要轉換的map。

* @param parentname 就是map的根key,如果map沒有根key,就輸入轉換後的xml根節點。

* @return string-->xml

*/@suppresswarnings("unchecked")

public static string createxmlbymap(mapmap,

string parentname)

document doc = documenthelper.createdocument();

//設定根節點

doc.addelement(parentname);

string xml = iteratorxml(doc.getrootelement(), parentname, rootmap);

return formatxml(xml);

}/**

* 迴圈遍歷params建立xml節點

* @param element 根節點

* @param parentname 子節點名字

* @param params map資料

* @return string-->xml

*/@suppresswarnings("unchecked")

public static string iteratorxml(element element, string parentname,

mapparams) else if (params.get(key) instanceof list)

} else

}return e.asxml();

}/**

* 格式化xml

* @param xml

* @return

*/public static string formatxml(string xml)

return requestxml;

} catch (exception e1) finally catch (ioexception e) }}

}/**

* 第二種

* 手動組裝map轉為string

* @param map

* @return

*/public static string movemaptoxml(map<?, ?> map)

/** *

* @param map 迴圈遍歷map節點和value

* @param sb 輸出xml

*/private static void maptoxml(map<?, ?> map, stringbuffer sb) else if (value instanceof arraylist)

} else

}}/**

* 通過xml轉換為map* @param xml 為string型別的xml

* @return 第乙個為root節點,root節點之後為root的元素,如果為多層,可以通過key獲取下一層map

*/public static mapcreatemapbyxml(string xml) catch (documentexception e)

mapmap = new hashmap();

if (doc == null)

return map;

element rootelement = doc.getrootelement();

elementtomap(rootelement, map);

return map;

}/***

* xmltomap核心方法,裡面有遞迴呼叫

* @param map

* @param ele

*/@suppresswarnings("unchecked")

public static mapelementtomap(element outele,

mapoutmap) else else else }}

outmap.put(outele.getname(), innermap);

}return outmap;

}

遞迴法遍歷xml文件所有節點。

能遍歷出乙個xml文件的所有的節點。module module1 sub main dim ireturn as integer dim myxmldocument as new xmldocument myxmldocument.load books.xml dim mynodes as xmln...

遞迴及如何用c 遞迴生成多層次XML檔案

遞迴做為一種演算法在程式語言中廣泛應用.是指函式 過程 子程式在執行過程中直接或間接呼叫自身而產生的重入現象.遞迴是電腦科學的乙個重要概念,遞迴的方法是程式設計中有效的方法,採用遞迴編寫程式能使程式變得簡潔和清晰.一般定義 程式呼叫自身的程式設計技巧稱為遞迴 recursion 乙個過程或函式在其定...

遞迴及如何用c 遞迴生成多層次XML檔案

遞迴做為一種演算法在程式語言中廣泛應用.是指函式 過程 子程式在執行過程中直接或間接呼叫自身而產生的重入現象.遞迴是電腦科學的乙個重要概念,遞迴的方法是程式設計中有效的方法,採用遞迴編寫程式能使程式變得簡潔和清晰.一般定義 程式呼叫自身的程式設計技巧稱為遞迴 recursion 乙個過程或函式在其定...