需要用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");
}
}

最新文章

  1. 使用CSS3制作三角形小图标
  2. ASP.NET Core 开发-中间件(Middleware)
  3. perl 学习杂项笔记
  4. (转)MyEclipse +Servlet
  5. C# richTextBox 重下往上依次查找关键字
  6. java学习之break 和 continue
  7. Linux命令之nano -
  8. 利用GDataXML解析XML文件
  9. STL中copy算法
  10. css控制div显示/隐藏方法及2种方法比较原码 - czf164的专栏 - 博客频道 - CSDN.NET
  11. ASP.NET Core 异常处理与日志记录
  12. Python爬虫(十八)_多线程糗事百科案例
  13. 敏捷开发每日报告--day5
  14. UE3中的时间
  15. js委托事件和代理事件
  16. XML文件怎么添加注释
  17. 【java初探】——格式化字符串
  18. Rafy框架
  19. mysql:rand()产生随机整数,CONCAT拼接时间字符串
  20. QT 开发资料

热门文章

  1. boost::asio async_write也不能保证一次发完所有数据 一
  2. POJ 2115 C Looooops(扩展欧几里得应用)
  3. Sublime Text3 + Golang搭建开发环境
  4. LaTeX新人教程,30分钟从全然陌生到基本入门
  5. jquery实现鼠标焦点十字效果
  6. Appium 出现 &gt; error: com.test/.activity1 never started. Current: com.test/.activity2
  7. 用scponly限制只能拷文件,不能登陆(MAC版)
  8. 使用Elasticsearch、Logstash、Kibana与Redis(作为缓冲区)对Nginx日志进行收集(转)
  9. 编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三
  10. 写给C语言新手的话