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

  • 相关阅读:
    Git 远程分支的查看及相关问题
    Clean Code – Chapter 6 Objects and Data Structures
    Clean Code – Chapter 5 Formatting
    Clean Code – Chapter 4: Comments
    利用 SerialPort 控件实现 PC 串口通信
    Clean Code – Chapter 3: Functions
    oracle如何查看当前有哪些用户连接到数据库
    c++ Ansi和Unicode相互转换
    c++ Utf8和Unicode相互转换
    c++ 根据某个字符或者字符串分割另外一个字符串
  • 原文地址:https://www.cnblogs.com/xueershewang/p/15508124.html
Copyright © 2020-2023  润新知