一、用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相关推荐

  1. 站长在线Python精讲:在Python中格式化字符串的两种方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...

  2. [转载]VC轻松解析XML文件 - CMarkup类的使用方法

    VC轻松解析XML文件 - CMarkup类的使用方法 VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等. 据说tinyXML很好,可能字符集问题,我编译不了 ...

  3. C++ 区分中文,非中文,截取含有中文的string字符串的两种方法

    C++ 区分中文,非中文,截取含有中文的string字符串的两种方法 方法一 根据中文在ASCII中的范围判断 方法二 把string转成wstring 转自: http://blog.51cto.c ...

  4. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  5. bash脚本截取字符串的两种方法

    bash脚本截取字符串的两种方法 方法一:位置截取 #bin/bash STR="1234567890asdfghjkl" echo "first character $ ...

  6. php 带建数组转字符串,php数组转换为字符串的两种方法详解【附视频】

    本篇文章主要给大家介绍PHP数组转换为字符串的两种方法.(文章末尾附有对应的视频教程) 第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串. 第二种方法:使用循环遍历数组元素拼接成 ...

  7. 将数组转化成字符串的两种方法

    将数组转化成字符串的两种方法 let arr = [1,2,8,9,'西瓜']; console.log(arr.toString());//将数组转化为字符串 console.log(arr.toS ...

  8. c#产生随机字符串的两种方法

    // c#产生随机字符串的两种方法 using System; using System.Data; using System.Linq; using System.Windows.Forms;nam ...

  9. 产生随机字符java_java生成随机字符串的两种方法

    本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下 import java.util.Random; public class CharacterUtils { //方法1 ...

最新文章

  1. Mysql列类型-数值型
  2. R语言ggplot2可视化在图形中添加箭头:直线箭头、弧形箭头
  3. xtrabackup之innobackupex命令参数
  4. Redis配置主从数据,实现主从库之间数据同步
  5. 坑爹的微信支付(签名错误)
  6. AB1601烧程序时注意事项
  7. 框架基础:深入理解Java注解类型(@Annotation)
  8. uibot在子程序执行js失败_使用 Node.js 将珍藏的 bash 脚本封装成命令行工具
  9. P4899 [IOI2018] werewolf 狼人(kruskal 重构树 + 主席树)
  10. JS遍历对象或者数组
  11. 产品经理装逼词汇大全
  12. RECT JS 由浅入深
  13. IDA远程调试Android中so文件
  14. 正则表达式 - php正则匹配内容?
  15. Python开发环境搭建方法简述
  16. adb远程(异地)连接实现投屏
  17. springboot集成微信公众号文章推送
  18. 【币圈止损】正确认知,合理运用
  19. Android实践:做一个可视频交互的智能小车
  20. Arthas开源一周年,Github Star 16K,我们一直在坚持什么?

热门文章

  1. 蓝牙路由器解决方案行业应用
  2. java复杂逻辑如何设计_javabean如何实现复杂的业务逻辑
  3. floor()函数的使用
  4. Alist+PotPlayer实现高清影视在线观看
  5. 芯盾时代: 开启“智慧身份认证”新时代
  6. NOIP2015提高组 信息传递(图论)
  7. 数位DP 学习笔记1(数位DP入门)
  8. mysql pdf微盘下载失败怎么办_mysql线上常见故障剖析.pdf
  9. 深度学习故障诊断之-使用条件生成对抗网络CGAN生成泵流量信号
  10. Change Log of Joomsport: Remove Undesired HTML(Synchronized with Server)