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("/tnum:[" + element2.elementText("num") 
                                + "]"); 
                        System.out.println("/tcode:[" 
                                + element2.elementText("code") + "]"); 
                        for (Iterator k = element2.elementIterator("instance"); k 
                                .hasNext();) { 
                            element3 = (org.dom4j.Element) k.next(); 
                            System.out.println("/t/tip:[" 
                                    + element3.elementText("ip") + "]"); 
                            System.out.println("/t/tmask:[" 
                                    + element3.elementText("mask") + "]"); 
                        } 
                    } 
                } 
            } catch (DocumentException e) { 
                e.printStackTrace(); 
            } catch (UnsupportedEncodingException e) { 
                e.printStackTrace(); 
            } 
            long end = System.currentTimeMillis(); 
            System.out.println("耗时:" + (end - start) + "ms"); 
        } 
}

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/19459.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论