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;
    }

结果展示

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136102.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python协程系列_python scrapy

    python协程系列_python scrapy协程的定义协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行A函数的时候,可以随时中断,去执行B函数,然后中断B函数,继续执行A函数(可以自动

    2022年7月31日
  • android ListView实现圆角(两种解决方案)

    android ListView实现圆角(两种解决方案)首先呢,我们还是看几个示图:(这是360推出的一款天气预报APP(墨迹),很不错的一款哦,这里为她们做一个免费广告,哈哈.)          这种带有圆角的listview’看起来很棒吧,确实是这样,其实也不能这么说,主要方形太多了,斯通见惯就不值钱了,“物以稀为贵嘛”.就好比学java都搞androd,很明显嘛,为了多赚点钱,可是供过于求的话,就不这么乐观了,就好比现在

    2022年7月17日
  • 什么是CPU密集型、IO密集型?「建议收藏」

    什么是CPU密集型、IO密集型?「建议收藏」CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPULoading100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPULoading很高。在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPUbound。例如一个计……

    2022年9月13日
  • 数据库mdf和ldf文件怎么打开_mdf数据库文件用什么打开

    数据库mdf和ldf文件怎么打开_mdf数据库文件用什么打开AdventureWorks2008数据文件下载(含mdf和ldf文件) 下载地址:http://pan.baidu.com/s/1kTA0EbH   (26MB左右。解压之后有196MB左右,直接附加即可使用。)

    2022年9月12日
  • IDDR和ODDR使用

    IDDR和ODDR原语是针对7系列芯片使用,spand可以使用IDDR2和ODDR2IDDR三种模式OPPOSITE_EDGEMode传统的输入DDR解决方案或OPPOSITE_EDGE模式是通过ILOGIC模块中的单个输入实现的。数据在时钟的上升沿通过输出Q1提供给FPGA逻辑,在时钟的下降沿通过输出Q2提供给FPGA逻辑。该结构类似于Virtex-6FPGA实现。图1显示…

    2022年4月7日
  • poe交换机跟普通交换机_交换机可以接交换机吗

    poe交换机跟普通交换机_交换机可以接交换机吗POE也被称为基于局域网的供电系统,有时也被简称为以太网供电,这是利用现存标准以太网传输电缆的同时传送数据和电功率的最新标准规范,并保持了与现存以太网系统和用户的兼容性。那么POE交换机和普通交换机之间存在那些不同呢?1.可靠性不同:POE交换机就是支持对网线供电的交换机,和普通交换机相比就是受电终端(比如AP、数字摄像头等)不用再进行电源布线,对整个网络而言可靠性更高。2.功能不同:POE交换机就是除了能提供普通交换机所具有的传输功能,还能给网线的另一端设备提供供电功能。3.优势不同:POE交换机有很多

    2022年10月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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