zoukankan      html  css  js  c++  java
  • java解析String类型t复杂xml,多级节点,最好的例子

    需要用jar包 dom4j-1.6.1.jar
    
    字符串xml如下:
    <root>
        <flw>
        <name>aa</name>
        <age>22</age>
        <instance_info>
              <num>1</num>
               <code>0</code>
              <instance>
                   <ip>10.1.1.2</ip>
                   <mask>9999</mask>
             </instance>
             <instance>
                   <ip>10.1.1.5</ip>
                   <mask>717</mask>
             </instance>
        </instance_info>
        
        <instance_info>
              <num>2</num>
               <code>33</code>
              <instance>
                   <ip>10.1.1.2</ip>
                   <mask>9999</mask>
             </instance>
             <instance>
                   <ip>10.1.1.9</ip>
                   <mask>878</mask>
             </instance>
        </instance_info>
       </flw>
    </root>
    解析代码:
    import java.io.ByteArrayInputStream;
    import java.io.UnsupportedEncodingException;
    import java.util.Iterator;
    
    import org.dom4j.DocumentException;
    import org.dom4j.io.SAXReader;
    
    public class XMLParser {
           public static void main(String[] args) {
                String xml = "<root><flw><name>aa</name><age>22</age><instance_info><num>1</num><code>0</code><instance><ip>10.1.1.2</ip><mask>9999</mask></instance><instance><ip>10.1.1.5</ip><mask>717</mask></instance></instance_info><instance_info><num>2</num><code>33</code><instance><ip>10.1.1.2</ip><mask>9999</mask></instance><instance><ip>10.1.1.9</ip><mask>878</mask></instance></instance_info></flw></root>";
         
                long start = System.currentTimeMillis();
         
                SAXReader reader = new SAXReader();
                try {
                    org.dom4j.Document doc = reader.read(new ByteArrayInputStream(xml
                            .getBytes("UTF-8")));
                    org.dom4j.Element root = doc.getRootElement();
                    org.dom4j.Element element;
                    org.dom4j.Element element2;
                    org.dom4j.Element element3;
                    for (Iterator i = root.elementIterator("flw"); i.hasNext();) {
                        element = (org.dom4j.Element) i.next();
                        System.out
                                .println("name:[" + element.elementText("name") + "]");
                        System.out.println("age:[" + element.elementText("age") + "]");
                        for (Iterator j = element.elementIterator("instance_info"); j
                                .hasNext();) {
                            element2 = (org.dom4j.Element) j.next();
                            System.out.println("	num:[" + element2.elementText("num")
                                    + "]");
                            System.out.println("	code:["
                                    + element2.elementText("code") + "]");
                            for (Iterator k = element2.elementIterator("instance"); k
                                    .hasNext();) {
                                element3 = (org.dom4j.Element) k.next();
                                System.out.println("		ip:["
                                        + element3.elementText("ip") + "]");
                                System.out.println("		mask:["
                                        + element3.elementText("mask") + "]");
                            }
                        }
                    }
                } catch (DocumentException e) {
                    e.printStackTrace();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                long end = System.currentTimeMillis();
                System.out.println("耗时:" + (end - start) + "ms");
            }
    }
  • 相关阅读:
    【GruntMate】一个让你更方便使用Grunt的工具
    HTML5小游戏【是男人就下一百层】UI美化版
    【Grunt】关于Grunt可视化的尝试
    在腾讯ubuntu云服务器上面部署asp.net core 2.1网站
    存储过程中执行动态Sql语句
    我的2016年总结
    程序员的成长阶梯和级别定义
    让IE8在win7下面能显示使用window.showmodaldialog弹出窗口的地址状态栏
    更改计算机名称后 导致 sql server 2008 R2 用windows账户不能附加的错误解决办法
    【转】通过js获取系统版本以及浏览器版本
  • 原文地址:https://www.cnblogs.com/chen-lhx/p/6168727.html
Copyright © 2011-2022 走看看