java xml map 方法_JAVA XML转换MAP 方法
在開發過程中會調用soap接口,返回的數據就是xml形式,那么久需要對xml進行解析,對xml操作大家都還是比較不是很熟悉相比對于map的操作。所以我提供了這么一個方法,讓大家對xml數據提取,轉換成對map數據提取。
下面是import 的jar 包,一定要引用對,剛開始做的時候,好多Document包,比較困擾,索性我直接貼出來減少不必要的麻煩。
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
/**
* xml to map.
* void.
* think.
*
* @param rootElement
* @param map
*/
public static void findAndPutElement(Element rootElement, Map map) {
if (null == rootElement){
return;
}
@SuppressWarnings("unchecked")
List elementList = rootElement.elements();
for (Element e : elementList) {
if (null != map.get(e.getName())){
}
Object tempObj = null;
if (e.elements().size() < 1){
tempObj = e.getStringValue();
} else {
Map innerMap = new HashMap();
findAndPutElement(e, innerMap);
tempObj = innerMap;
}
if (null == map.get(e.getName())){
map.put(e.getName(), tempObj);
} else if (map.get(e.getName()) instanceof List){
@SuppressWarnings("unchecked")
List obj = (List) map.get(e.getName());
obj.add(tempObj);
} else{
List objList = new LinkedList();
objList.add(map.get(e.getName()));
objList.add(tempObj);
map.put(e.getName(), objList);
}
}
}
正如上面代碼所示,將簡單的xml 進行格式化,封裝到map結構中,輸入根節點,然后輸入結果map就可以了。下面是待處理xml:
參考測試代碼:
public static void main(String [] argv){
String xmlStr1 = "success1134rfsadf2223666666";
try {
Document document = DocumentHelper.parseText(xmlStr1);
Element root = document.getRootElement();
Map resultMap = new HashMap();
findAndPutElement(root, resultMap);
System.out.print(resultMap);
} catch (Exception e) {
e.printStackTrace();
}
}
下面是生成Map結構參考結果:
{
Status={
resultMsg=1,
result=success,
resCode=1
},
records={
record={
userInfo={
numInfos={
numInfo=[
{
indentNbrType=23,
indentNbr=22
},
{
indentNbrType=6666,
indentNbr=66
}
]
},
id=3,
name=4,
Remarks=rfsadf
}
}
}
}
后續會更新 字段包含屬性的情況。如下:
期待后續更新~
總結
以上是生活随笔為你收集整理的java xml map 方法_JAVA XML转换MAP 方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2199 元:Apple HomePod
- 下一篇: .net framework与java,