zoukankan      html  css  js  c++  java
  • xml解析

    创建一个Java类测试下,直接f复制下面代码到类里

    *************************类开始************************************

    package xml;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    
    public class TestXml {
        public static void main(String[] args) {
            String xml = "<?xml version='1.0' encoding='UTF-8'?>"+
                    "<cenode0 xmlns:ns0='http://test.com/'>"+
                       "<node1></node1>"+
                       "<node2>"+
                           "<node3>测试数据</node3>"+
                           "<node4>000110011</node4>"+
                           "<node5>"+
                                 "<node7>ces3</node7>"+
                                 "<node8>ces4</node8>"+
                           "</node5>"+
                           "<node6>"+ 
                              "<node9>ces1</node9>"+
                              "<node10>ces2</node10>"+
                           "</node6>"+
                       "</node2>"+
                    "</cenode0>";
            
            Map map = test2(xml);
            System.out.println(map);
        }    
        
        
        public static Map test2(String xml){
            
            Document doc = null;
            Map m = new HashMap();
            // 下面的是通过解析xml字符串的
            try {
                doc = DocumentHelper.parseText(xml); // 将字符串转为XML
                Element node = doc.getRootElement(); // 获取根节点
                List<Element> listElement=node.elements();//所有一级子节点的list
                for(Element e:listElement){//遍历所有一级子节点
                    m.put(e.getName(), initnode(e));
                }
    
                System.out.println(m);
                return m;
            } catch (DocumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return m;
        }
        
        
        public static Object initnode(Element element){
            List<Element> listElement=element.elements();//所有一级子节点的list
            if(listElement!=null&&listElement.size()>0){
                Map m = new HashMap();
                for(Element e:listElement){//遍历所有一级子节点
                    m.put(e.getName(), initnode(e));
                }
                return m;
            }else{
                return element.getStringValue().toString();
            }
        }
    }

    *************************类结束************************************

    结果 :   {node1=, node2={node4=000110011, node5={node8=ces4, node7=ces3}, node3=测试数据, node6={node10=ces2, node9=ces1}}}

  • 相关阅读:
    身体终于好了 敢大声说话 没事了
    网名 关于网名
    opencv学习20初探基本类型数据
    SQL语句精典收藏
    CodeSimth Update存储过程
    动态sql语句基本语法
    CodeSmith下载与生成存储过程的一个模板
    SQL SERVER的数据类型
    SQL语句精典收藏
    CodeSmith入门教程之编写数据库模板
  • 原文地址:https://www.cnblogs.com/xueershewang/p/15508124.html
Copyright © 2011-2022 走看看