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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CSS导航条制作心得

    CSS导航条制作心得今天学习了导航条的制作,感觉收获很大!学习了一段时间的css和html。之前都是在慕课网上面看视频学习的,感觉收获不是特别大,有一点慢,效率不高。学东西还是得边做边学变想,学习编程最好能够不断地实践,毕竟实践出真知。学习了这个作者的文章http://www.missyuan.com/thread-438839-1-1.html    1.导航条放于div容器中——-ui和li来写

    2022年7月22日
    17
  • Windows10 永久激活查询/激活时间查询/激活查询命令/激活码查询

    Windows10 永久激活查询/激活时间查询/激活查询命令/激活码查询Windows10永久激活查询/激活时间查询/激活查询命令/激活码查询1、使用Windows+R组合快捷键打开运行命令框运行:slmgr.vbs-dlv命令可以查询到Win10的激活信息,包括:激活ID、安装ID、激活截止日期等信息。看不懂的继续往下。2、运行:slmgr.vbs-dli命令可以查询到操作系统版本、部分产品密钥、许可证状态等。3、运行:slmgr.vbs-xpr命令可以查询Win10是否永久激活。4、运行:winver

    2022年5月7日
    307
  • python批量修改文件夹名称_python文件扩展名主要有

    python批量修改文件夹名称_python文件扩展名主要有1、引言需要把.dat格式转化成.txt格式2、实现##python批量更换后缀名importos#列出当前目录下所有的文件files=os.listdir(‘.’)#print(‘files’,files)forfilenameinfiles:portion=os.path.splitext(filename)#如果后缀是.datifp

    2022年9月23日
    4
  • python输出语句print用法_python print输出

    python输出语句print用法_python print输出【时间】2018.10.12【题目】python中的print输出函数用法总结 一、直接输出无论什么类型,数值,布尔,列表,字典…都可以直接输出,或者先赋值给变量,再输出。  二、格式化输出下面是《Python基础编程》中对格式化输出的总结:(1).%字符:标记转换说明符的开始(2).转换标志:-表示左对齐;+表示在转换值之前要加上正负号;“”(…

    2025年7月10日
    1
  • 下列变量名不符合python命名规范的是_下列选项中不符合Python语言变量命名规则的是…

    下列变量名不符合python命名规范的是_下列选项中不符合Python语言变量命名规则的是…【单选题】下列Python保留字中,不用于表示分支结构的是【单选题】以下程序的输出结果是:j=”foriin”12345″:j+=i+’,’print(j)【单选题】在读写文件之前,必须通过哪种方法创建文件对象【单选题】以下程序的输出结果是:s=”ls=[1,2,3,4]forlinls:s+=str(l)print(s)【单选题】Python…

    2022年6月13日
    91
  • Threading(in thread main)

    PainlessThreadingThisarticlediscussesthethreadingmodelusedbyAndroidapplicationsandhowapplicationscanensurebestUIperformancebyspawningworkerthreadstohandlelong-runningoperat

    2022年4月15日
    25

发表回复

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

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