大家好,又见面了,我是你们的朋友全栈君。
前言
java解析XML字符串格式使用的是Dom4j这一种方式;
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。
使用Dom4j是hibernate底层也是通过Dom4j来实现的
代码示例
pom.xml中引入dom4j包
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
代码实现
public static void main(String[] args) {
String parseStr = null;
String returnMsg = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
"<Result xmlns=\"http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\">"+
"<row resultcount=\"1\">"+
"<users_id>1001 </users_id>"+
"<users_name>wangwei </users_name>"+
"<users_group>80 </users_group>"+
"<users_address>1001号 </users_address>"+
"</row>"+
"<row resultcount=\"2\">"+
"<users_id>1002 </users_id>"+
"<users_name>wangwei </users_name>"+
"<users_group>80 </users_group>"+
"<users_address>1002号 </users_address>"+
"</row>"+
"</Result>";
try {
Document doc = DocumentHelper.parseText(returnMsg);
Element roots = doc.getRootElement();
//System.out.println("根节点 = [" + roots.getName() + "]");
//System.out.println("内容:" + roots.getText());
parseStr = roots.getText();
Iterator elements=roots.elementIterator();
while (elements.hasNext()){
Element child= (Element) elements.next();
//System.out.println("节点名称 = [" + child.getName() + "]"+"节点内容:"+child.getText());
List subElemets=child.elements();
//System.out.println(subElemets.size());
List<Map<String,Object>> treeMapList = new ArrayList<>();
for(int i=0;i<subElemets.size();i++){
Map<String,Object> mapData = new HashedMap();
Element subChild= (Element) subElemets.get(i);
mapData.put(subChild.getName(),subChild.getText());
treeMapList.add(mapData);
//System.out.println("子节点名称:"+subChild.getName()+";子节点内容:"+subChild.getText());
}
System.out.println(treeMapList);
}
} catch (DocumentException e) {
e.printStackTrace();
}
//System.out.println(parseStr);
// return parseStr;
}
结果展示
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136102.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...