Java全面解析string类型的xml字符串
作者:猿来就是你1 时间:2021-06-03 21:15:18
解析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
标签:Java,string,xml,字符串
0
投稿
猜你喜欢
java swing实现简单的五子棋游戏
2022-04-16 22:10:10
JavaTCP上传图片代码实例
2022-02-08 19:05:18
C# wpf简单颜色板的实现
2022-02-11 20:08:38
android 开发教程之日历项目实践(二)
2022-05-05 22:22:13
基于Java回顾之JDBC的使用详解
2021-12-24 16:36:03
Android扩大View点击范围的方法
2022-07-21 17:49:29
C#算法函数:获取一个字符串中的最大长度的数字
2022-12-25 10:20:04
ios百度地图的使用(普通定位、反地理编码)
2023-07-03 15:26:17
浅谈Android Studio 3.0 的一些小变化
2022-12-23 10:27:56
C# TaskScheduler任务调度器的实现
2022-09-30 16:54:21
基于Java实现缓存Cache的深入分析
2023-08-15 20:53:59
springMVC实现前台带进度条文件上传的示例代码
2021-09-15 17:24:44
Spring中AOP概念与两种动态代理模式原理详解
2023-04-13 01:21:54
详解Java的JDBC API中事务的提交和回滚
2021-07-23 15:19:54
Spring Boot项目使用Flyway的详细教程
2021-12-19 12:05:58
Java结构型模式之门面模式详解
2023-07-29 10:26:55
C# log4net日志库的用法小结
2023-12-26 18:50:44
C#的正则表达式Regex类使用简明教程
2021-11-16 12:47:32
C#使用HttpPost请求调用WebService的方法
2022-02-24 07:22:16
Logback日志基础及自定义配置代码实例
2022-09-04 01:01:41