xml解析为java集合对象Word格式.docx
- 文档编号:21919968
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:17
- 大小:100.07KB
xml解析为java集合对象Word格式.docx
《xml解析为java集合对象Word格式.docx》由会员分享,可在线阅读,更多相关《xml解析为java集合对象Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
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\"
>
"
+
"
root>
<
code>
代码<
/code>
<
commercial_insurance_detail>
<
premium>
保费<
/premium>
underwriting_details>
underwriting_detail>
type>
承保险别<
/type>
+"
/underwriting_detail>
details>
detail>
/detail>
/details>
/underwriting_details>
"
/commercial_insurance_detail>
compulsory_insurance_detail>
tonnage>
吨位<
/tonnage>
insured_amount>
保险金额<
/insured_amount>
/compulsory_insurance_detail>
/root>
;
System.out.println(str);
TestOneto=newTestOne();
Documentdoc=DocumentHelper.parseText(str);
Elementroot=doc.getRootElement();
Map<
String,Object>
map=to.doGetElementMapData(root,root.getName().trim());
System.out.println(map.toString());
}
*获取所有非重复元素下的集合
*@paramroot
*@paramname
*@return
*@throwsException
publicMap<
String,Object>
doGetElementMapData(Elementroot,Stringname)throwsException{
List<
Map<
listMap=newArrayList<
();
map=newHashMap<
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;
*获取重复元素下所有集合
publicList<
doGetElementListMapData(Elementroot,Stringname)throwsException{
listMap.add(doGetElementMapData(element,nme));
if(!
map.isEmpty()){
listMap.add(map);
returnlistMap;
*判断是否有重复元素
publicbooleanisRepeat(Elementroot)throwsException{
intk=0;
Stringnum[]=newString[root.elements().size()];
num[k]=element.getName().trim();
k++;
for(inti=0;
i<
num.length;
i++){
for(intj=i+1;
j<
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=[
{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 集合 对象