xml解析为java集合对象.docx
- 文档编号:7957700
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:16
- 大小:100.13KB
xml解析为java集合对象.docx
《xml解析为java集合对象.docx》由会员分享,可在线阅读,更多相关《xml解析为java集合对象.docx(16页珍藏版)》请在冰豆网上搜索。
xml解析为java集合对象
一、Projectmenu截图:
二、Testmain截图:
三、doGetElementMapData截图:
四、doGetElementListMapData截图:
五、isRepeat截图:
六、测试xml截图:
七、xml转换集合对象截图:
八、源码:
一、java源码:
packagecom.test;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Map;
importorg.dom4j.Document;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
publicclassTestOne{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args)throwsException{
Stringstr="
xmlversion=\"1.0\"encoding=\"UTF-8\"?
>"+
"
"代码
"+
"
"
"
"
"
" "+"
"
"
" "+" "+
" "+" "+
" "+"
"
"
" "+" "+
"";
System.out.println(str);
TestOneto=newTestOne();
Documentdoc=DocumentHelper.parseText(str);
Elementroot=doc.getRootElement();
Map
System.out.println(map.toString());
}
/**
*获取所有非重复元素下的集合
*@paramroot
*@paramname
*@return
*@throwsException
*/
publicMap
List
Map
Iterator
>iter=root.elementIterator();
while(iter.hasNext()){
Elementelement=(Element)iter.next();
Stringnme=name+"-"+element.getName().trim();
intsize=element.elements().size();
if(size>0){//有子元素
booleanflag=isRepeat(element);
if(flag){//有重复项
listMap.addAll(doGetElementListMapData(element,nme));
}else{
map.putAll(doGetElementMapData(element,nme));
}
}else{
map.put(nme,element.getTextTrim());
}
}
if(null!
=listMap&&listMap.size()>0){
map.put(name,listMap);
}
returnmap;
}
/**
*获取重复元素下所有集合
*@paramroot
*@paramname
*@return
*@throwsException
*/
publicList
List
Map
Iterator
>iter=root.elementIterator();
while(iter.hasNext()){
Elementelement=(Element)iter.next();
Stringnme=name+"-"+element.getName().trim();
intsize=element.elements().size();
if(size>0){//有子元素
booleanflag=isRepeat(element);
if(flag){//有重复项
listMap.addAll(doGetElementListMapData(element,nme));
}else{
listMap.add(doGetElementMapData(element,nme));
}
}else{
map.put(nme,element.getTextTrim());
}
}
if(!
map.isEmpty()){
listMap.add(map);
}
returnlistMap;
}
/**
*判断是否有重复元素
*@paramroot
*@return
*@throwsException
*/
publicbooleanisRepeat(Elementroot)throwsException{
intk=0;
Stringnum[]=newString[root.elements().size()];
Iterator
>iter=root.elementIterator();
while(iter.hasNext()){
Elementelement=(Element)iter.next();
num[k]=element.getName().trim();
k++;
}
for(inti=0;i for(intj=i+1;j Stringone=num[i].trim(); Stringtwo=num[j].trim(); if(one.equals(two)){ returntrue; } } } returnfalse; } } 二、测试xml源码: xmlversion="1.0"encoding="UTF-8"? > 三、集合对象源码: {root-compulsory_insurance_detail-underwriting_details-type=承保险别, root-compulsory_insurance_detail-tonnage=吨位, root-compulsory_insurance_detail-underwriting_details-insured_amount=保险金额, root-commercial_insurance_detail=[ {root-commercial_insurance_detail-underwriting_details-underwriting_detail-type=承保险别}, {root-commercial_insurance_detail-underwriting_details-underwriting_detail-type=承保险别}, {root-commercial_insurance_detail-underwriting_details-underwriting_detail=[ {root-commercial_insurance_detail-underwriting_details-underwriting_detail-details-detail-type=承保险别}, {root-commercial_insurance_detail-underwriting_details-underwriting_detail-details-detail-type=承保险别}, {root-commercial_insurance_detail-underwriting_details-underwriting_detail-details-detail-type=承保险别} ],root-commercial_insurance_detail-underwriting_details-underwriting_detail-type=承保险别} ], root-code=代码, root-commercial_insurance_detail-premium=保费}代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xml 解析 java 集合 对象