Java全面解析string类型的xml字符串
更新时间:2022年3月1日 13:10 点击:278 作者:猿来就是你1
解析string类型的xml字符串
我先拼接一个xml格式的字符串,模拟获取了这样的数据,然后再解析
所需要的包自行导入
StringBuilder sb = new StringBuilder(); sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.append("<root>"); sb.append(" <header>"); sb.append(" <mark>" + "this is a mark!"+ "</mark>"); sb.append(" </header>"); sb.append(" <body>"); sb.append(" <data>"); sb.append(" <first>"); sb.append(" <second>" + "来解析我啊!"+ "</second>"); sb.append(" </first>"); sb.append(" </data>"); sb.append(" </body>"); sb.append("</root>"); //开始解析 String str= sb.toString(); Document doc = null; try { doc = DocumentHelper.parseText(str); } catch (DocumentException e) { e.printStackTrace(); } Element root = doc.getRootElement();// 指向根节点 <root> try { Element mark=root.element("header").element("mark"); Element second=root.element("body").element("data").element("first").element("second"); //获取xml的节点内容 System.out.println(mark.getTextTrim()); System.out.println(second.getTextTrim()); }catch(Exception e){ e.printStackTrace(); }
运行结果:
解析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"); } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。
原文出处:https://blog.csdn.net/qq_33532644/article/details/84959272
下一篇: mybatis-plus使用问题小结
相关文章
- 这篇文章主要介绍了如何利用java语言实现经典《复杂迷宫》游戏,文中采用了swing技术进行了界面化处理,感兴趣的小伙伴可以动手试一试...2022-02-01
java 运行报错has been compiled by a more recent version of the Java Runtime
java 运行报错has been compiled by a more recent version of the Java Runtime (class file version 54.0)...2021-04-01- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
- 这篇文章主要介绍了Java如何发起http请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
- 本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
- 说起C#和Java这两门语言(语法,数据类型 等),个人以为,大概有90%以上的相似,甚至可以认为几乎一样。但是在工作中,我也发现了一些细微的差别...2020-06-25
mybatis 返回Integer,Double,String等类型的数据操作
这篇文章主要介绍了mybatis 返回Integer,Double,String等类型的数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-25- 这篇文章主要介绍了解决Java处理HTTP请求超时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
- 这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- 这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了java 判断两个时间段是否重叠的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
- 这篇文章主要介绍了超简洁java实现双色球若干注随机号码生成(实例代码),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-02
- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01