Java解析XML字符串格式「建议收藏」

Java解析XML字符串格式「建议收藏」Java解析XML字符串格式代码示例结果展示代码示例publicstaticvoidmain(String[]args){StringparseStr=null;StringreturnMsg=”<?xmlversion=\”1.0\”encoding=\”gb2312\”?>”+”<Resultxmlns=\”http://www.fiorano.com/fesb/activity/DB

大家好,又见面了,我是你们的朋友全栈君。

Java解析XML字符串格式

前言

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账号...

(0)
blank

相关推荐

  • 总结:监控系统的7大作用

    总结:监控系统的7大作用一、介绍二、详解 实时采集监控数据:包括硬件、操作系统、中间件、应用程序等各个维度的数据。 实时反馈监控状态:通过对采集的数据进行多维度统计和可视化展示,能实时体现监控对象的状态是正常还是异常。 预知故障和告警:能够提前预知故障风险,并及时发出告警信息。 辅助定位故障:提供故障发生时的各项指标数据,辅助故障分析和定位。 辅助性能调优:为性能调优提供数据支持,比如慢SQL,接口响应时间等。 辅助容量规划:为服务器、中间件以及应用集群的容量规划

  • pycharm2021.3.3激活 mac破解方法[通俗易懂]

    pycharm2021.3.3激活 mac破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 怎么花最少的钱提升出租屋的格调?

    怎么花最少的钱提升出租屋的格调?发条橘子667 ,一个脱离了高级趣味的人。可可苏玛 等 12288 人赞同@ 在我到上海一年零八个月的时候,我从原来的公司辞职了,之后我又双叒叕搬家了。新租的房子在漕河泾开发区附近,39平的一居室。是我能在这一带找到的最便宜的一居室。租赁合同上表明该公寓始建于1972年,因此整体的装修风格非常…怎么说呢…复古。基本上屋里每

  • Android直播开发之旅(10):AndroidUSBCamera,UVCCamera开发通用库(支持开启多路摄像头)[通俗易懂]

    Android直播开发之旅(10):AndroidUSBCamera,UVCCamera开发通用库(支持开启多路摄像头)[通俗易懂]AndroidUSBCamera基于[saki4510t/UVCCamera](https://github.com/saki4510t/UVCCamera)开发,该项目对USBCamera(UVC设备)的使用和视频数据采集进行了高度封装,能够帮助开发者通过几个简单的API实现USBCamera设备的检测、连接、预览和音视频数据采集,最重要的是手机无需root,只需支持otg功能即可驱………

  • 图的四种最短路径算法

    图的四种最短路径算法本文总结了图的几种最短路径算法的实现:深度或广度优先搜索算法,弗洛伊德算法,迪杰斯特拉算法,Bellman-Ford算法1),深度或广度优先搜索算法(解决单源最短路径)从起始结点开始访问所有的深度遍历路径或广度优先路径,则到达终点结点的路径有多条,取其中路径权值最短的一条则为最短路径。下面是核心代码:[cpp] viewplain copyvoid dfs(int cur, int dst){ …

  • Method类的Invoke方法[通俗易懂]

    Method类的Invoke方法[通俗易懂]Dto:dto里面放的都是同一类型的字段/**Creation:2Dec2015*/packagecom.java.invoke;publicclassDto{privateIntegerCol1;privateIntegerCol2;privateIntegerCol3;privateIntegerCo

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号