• Java解析XML格式的字符串


    1 解析Xml

    1.1 添加项目依赖

         <!-- 解析Xml -->
            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.6.1</version>
            </dependency>

    1.2 返回的Xml使用字符串换行

    String returnMsg = "<?xml version=\"1.0\" encoding=\"gb2312\"?>" +
                    "<Result xmlns=\"https:www.youyoushop.work\">" +
                    "<row resultcount=\"1\">" +
                    "<userId>001</userId>" +
                    "<usersName>张三</usersName>" +
                    "<userAge>22</userAge>" +
                    "</row>" +
                    "<row resultcount=\"2\">" +
                    "<userId>002</userId>" +
                    "<usersName>李四</usersName>" +
                    "<userAge>33</userAge>" +
                    "</row>" +
                    "</Result>";

    测试代码

    @Test
        public void test1() {
            String returnMsg = "<?xml version=\"1.0\" encoding=\"gb2312\"?>" +
                    "<Result xmlns=\"https:www.youyoushop.work\">" +
                    "<row resultcount=\"1\">" +
                    "<userId>001</userId>" +
                    "<usersName>张三</usersName>" +
                    "<userAge>22</userAge>" +
                    "</row>" +
                    "<row resultcount=\"2\">" +
                    "<userId>002</userId>" +
                    "<usersName>李四</usersName>" +
                    "<userAge>33</userAge>" +
                    "</row>" +
                    "</Result>";
    
            try {
                Document doc = DocumentHelper.parseText(returnMsg);
                Element roots = doc.getRootElement();
    //            System.out.println("根节点 = [" + roots.getName() + "]");
    //            System.out.println("内容:" + roots.getText());
                Iterator elements = roots.elementIterator();
                while (elements.hasNext()) {
                    Element child = (Element) elements.next();
                    //System.out.println("节点名称 = [" + child.getName() + "]"+"节点内容:"+child.getText());
                    List subElements = child.elements();
    
                    List<Map<String, Object>> treeMapList = new ArrayList<>();
    
                    for (int i = 0; i < subElements.size(); i++) {
                        Map<String, Object> mapData = new HashedMap();
                        Element subChild = (Element) subElements.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();
            }
        }

    测试结果

    1.3 返回的Xml没有换行

    String strXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <Notification xmlns=\"https://netdist.youyoushop.work\"> <userId>7474741</userId> <userName>不服?咋滴</userName> <userAge>88</userAge> <Message>{\"jobId\":\"666888\",\"requestId\":\"639D1D03-1557-4AD7-9AD7-691F02834516\",\"state\":\"Success\"}</Message> </Notification>";

    测试代码

    @Test
        public void test2() {
            String strXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <Notification xmlns=\"https://netdist.youyoushop.work\"> <userId>7474741</userId> <userName>不服?咋滴</userName> <userAge>88</userAge> <Message>{\"jobId\":\"666888\",\"requestId\":\"639D1D03-1557-4AD7-9AD7-691F02834516\",\"state\":\"Success\"}</Message> </Notification>";
    
            try {
                Document doc = DocumentHelper.parseText(strXML);
    
                // 指向根节点
                Element root = doc.getRootElement();
    
                Iterator it = root.elementIterator();
                while (it.hasNext()) {
                    // 一个Item节点
                    Element element = (Element) it.next();
                    System.out.println(element.getName() + " : " + element.getTextTrim());
                }
    
            } catch (DocumentException e) {
                e.printStackTrace();
            }
        }

    测试结果

  • 相关阅读:
    Linux守护进程
    sequel pro无法连接mysql服务器
    socket编程之并发回射服务器2
    Unix的I/O模型
    nginx.conf laravel 配置
    phpstudy使用PHP+nginx配置Laravel
    nginx配置文件分开配置
    centos安装composer
    linux下 设置php的环境变量 php: command not found
    laravel 安装
  • 原文地址:https://www.cnblogs.com/liyhbk/p/15986475.html
Copyright © 2020-2023  润新知