解析XML文件(字符串)的两种方法-----SAXReader 与 DocumentHelper
一、用SAXReader 方式解析:实例测试类TestXML
package *
import java.io.ByteArrayInputStream;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestXml {
/**
* @param args
*/
public static void main(String[] args) {
try {
// TODO Auto-generated method stub
//定义要解析的XML字符串
String transMessage = "<?xml version=/"1.0/" encoding=/"GBK/"?><message>"
+ "<body>"
+ "<ticketNotify>"
+ "<ticket id=/"6000012007051000000231/" dealTime=/"20070510165423/" status=/"0000/" message=/"成功,系统处理正常/"/>"
+ "<ticket id=/"6000012007051000000232/" dealTime=/"20070510165424/" status=/"2012/" message=/"禁止倍投/"/>"
+ "</ticketNotify>" + "</body></message>";
// 创建xml解析对象
SAXReader reader = new SAXReader();
// 定义一个文档
Document document = null;
//将字符串转换为
document = reader.read(new ByteArrayInputStream(transMessage
.getBytes("GBK")));
// 得到xml的根节点(message)
Element root = document.getRootElement();
//定义子循环体的变量
Element ticket=null;
Iterator tickets = null;
for (tickets = root.element("body").element("ticketNotify").elementIterator(); tickets.hasNext();) {
ticket = (Element) tickets.next();
System.out.print(ticket.attributeValue("id")+" ");
System.out.print(ticket.attributeValue("dealTime")+" ");
System.out.println(ticket.attributeValue("status"));
}
//Element.asXML方法,获得包括该标签的所有XML数据
System.out.println(root.element("body").asXML());
} catch (Exception e) {
e.printStackTrace();
}
}
}
二、DocumentHelper 方式解析:实例测试类TestXML
package *;
import java.io.ByteArrayInputStream;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestXml {
/**
* @param args
*/
public static void main(String[] args) {
try {
// TODO Auto-generated method stub
//定义要解析的XML字符串
String transMessage = "<?xml version=/"1.0/" encoding=/"GBK/"?><message>"
+ "<body>"
+ "<ticketNotify>"
+ "<ticket id=/"6000012007051000000231/" dealTime=/"20070510165423/" status=/"0000/" message=/"成功,系统处理正常/"/>"
+ "<ticket id=/"6000012007051000000232/" dealTime=/"20070510165424/" status=/"2012/" message=/"禁止倍投/"/>"
+ "</ticketNotify>" + "</body></message>";
// 创建xml解析对象
// SAXReader reader = new SAXReader();
// 定义一个文档
Document document = null;
//将字符串转换为
// document = reader.read(new ByteArrayInputStream(transMessage
// .getBytes("GBK")));
document = DocumentHelper.parseText(transMessage);
// 得到xml的根节点(message)
Element root = document.getRootElement();
//定义子循环体的变量
Element ticket=null;
Iterator tickets = null;
for (tickets = root.element("body").element("ticketNotify").elementIterator(); tickets.hasNext();) {
ticket = (Element) tickets.next();
System.out.print(ticket.attributeValue("id")+" ");
System.out.print(ticket.attributeValue("dealTime")+" ");
System.out.println(ticket.attributeValue("status"));
}
//Element.asXML方法,获得包括该标签的所有XML数据
System.out.println(root.element("body").asXML());
} catch (Exception e) {
e.printStackTrace();
}
}
}
解析XML文件(字符串)的两种方法-----SAXReader 与 DocumentHelper相关推荐
- 站长在线Python精讲:在Python中格式化字符串的两种方法详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...
- [转载]VC轻松解析XML文件 - CMarkup类的使用方法
VC轻松解析XML文件 - CMarkup类的使用方法 VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等. 据说tinyXML很好,可能字符集问题,我编译不了 ...
- C++ 区分中文,非中文,截取含有中文的string字符串的两种方法
C++ 区分中文,非中文,截取含有中文的string字符串的两种方法 方法一 根据中文在ASCII中的范围判断 方法二 把string转成wstring 转自: http://blog.51cto.c ...
- 在PHP代码中处理JSON 格式的字符串的两种方法:
总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...
- bash脚本截取字符串的两种方法
bash脚本截取字符串的两种方法 方法一:位置截取 #bin/bash STR="1234567890asdfghjkl" echo "first character $ ...
- php 带建数组转字符串,php数组转换为字符串的两种方法详解【附视频】
本篇文章主要给大家介绍PHP数组转换为字符串的两种方法.(文章末尾附有对应的视频教程) 第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串. 第二种方法:使用循环遍历数组元素拼接成 ...
- 将数组转化成字符串的两种方法
将数组转化成字符串的两种方法 let arr = [1,2,8,9,'西瓜']; console.log(arr.toString());//将数组转化为字符串 console.log(arr.toS ...
- c#产生随机字符串的两种方法
// c#产生随机字符串的两种方法 using System; using System.Data; using System.Linq; using System.Windows.Forms;nam ...
- 产生随机字符java_java生成随机字符串的两种方法
本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下 import java.util.Random; public class CharacterUtils { //方法1 ...
最新文章
- Mysql列类型-数值型
- R语言ggplot2可视化在图形中添加箭头:直线箭头、弧形箭头
- xtrabackup之innobackupex命令参数
- Redis配置主从数据,实现主从库之间数据同步
- 坑爹的微信支付(签名错误)
- AB1601烧程序时注意事项
- 框架基础:深入理解Java注解类型(@Annotation)
- uibot在子程序执行js失败_使用 Node.js 将珍藏的 bash 脚本封装成命令行工具
- P4899 [IOI2018] werewolf 狼人(kruskal 重构树 + 主席树)
- JS遍历对象或者数组
- 产品经理装逼词汇大全
- RECT JS 由浅入深
- IDA远程调试Android中so文件
- 正则表达式 - php正则匹配内容?
- Python开发环境搭建方法简述
- adb远程(异地)连接实现投屏
- springboot集成微信公众号文章推送
- 【币圈止损】正确认知,合理运用
- Android实践:做一个可视频交互的智能小车
- Arthas开源一周年,Github Star 16K,我们一直在坚持什么?
热门文章
- 蓝牙路由器解决方案行业应用
- java复杂逻辑如何设计_javabean如何实现复杂的业务逻辑
- floor()函数的使用
- Alist+PotPlayer实现高清影视在线观看
- 芯盾时代: 开启“智慧身份认证”新时代
- NOIP2015提高组 信息传递(图论)
- 数位DP 学习笔记1(数位DP入门)
- mysql pdf微盘下载失败怎么办_mysql线上常见故障剖析.pdf
- 深度学习故障诊断之-使用条件生成对抗网络CGAN生成泵流量信号
- Change Log of Joomsport: Remove Undesired HTML(Synchronized with Server)