一、用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/"?>"

+ "

"

+ ""

+ ""

+ ""

+ "" + "";

// 创建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/"?>"

+ "

"

+ ""

+ ""

+ ""

+ "" + "";

// 创建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();

}

}

}

java saxreader 字符串_解析XML文件(字符串)的两种方法-----SAXReader 与 DocumentHelper...相关推荐

  1. java使用SAX接口解析xml文件

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用SAX接口解析xml文件.实现解析类,从xml解析开始到结尾,每一步均会触发对象的重载函数. 测试代码,将book1.xml改成你自己 ...

  2. SAXReader简单的解析xml文件

    SAXReader简单的解析xml文件 工作中遇到了解析XML文件,简单的来记录一下 //获取sax解析器对象 SAXReader reader = new SAXReader(); //设置编码格式 ...

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

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

  4. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  5. 怎么在mac打开home文件夹? mac打开home文件夹的两种方法

    今天小编给大家带来怎么在mac打开home文件夹? mac打开home文件夹的两种方法教程,那么具体该怎么打开呢?下面我们就来看看mac打开home文件夹的两种方法,需要的朋友可以参考下.记得收藏哦 ...

  6. Java框架开发基础-解析XML文件

    认识XML |----XML编写要求: XML声明: 1.XML声明用于指明当前文件为XML文件,文件采用的XML版本和编码. 2.<?xml version="1.0" e ...

  7. Java解析XMl文件之SAX和DOm方法

    如题,这两种方法的jar包都在jdk中,不需要下载. 先来说下目录结构: 首先建一个Peron类封装person.xml的属性:DomParseService和SaxParseService分别为两种 ...

  8. java成员变量怎么赋值_给成员变量赋值的两种方法

    JAVA 跟C++ 差不多,给类里面的私有成员变量一般有两种方法: 一种是通过 成员函数 来赋值 一种是:通道构造函数来赋值 /* 我们一直在使用构造方法,但是,我们确没有定义构造方法,用的是哪里来的 ...

  9. [ASP.NET] 限制上传文件类型的两种方法(转)

    通常,为了防止因用户上传有害文件(如木马.黑客程序)引发的安全性问题,Web程序都会对用户允许上传的文件类型加以限制.而本文将要介绍的就是如何在ASP.NET应用程序中利用Web Control的内置 ...

  10. python大漠游戏多开_防止程序多开的两种方法

    [程序篇]防止程序多开的两种方法 http://bbs.cskin.net/forum.php?mod=viewthread&tid=105&fromuid=2446 (出处: CSk ...

最新文章

  1. 共阴极数码管编码表_数码管循环点亮的PLC控制——基本逻辑指令的应用
  2. 2维FFT算法实现——基于GPU的基2快速二维傅里叶变换
  3. iPhone 11全球供应紧张:何时补货未知
  4. 小鹏汽车CEO疑似隔空回应偷窃技术传闻;​苹果明年新款iPhone将使用增强版5nm芯片;Windows诞生35周年|极客头条...
  5. 贵州出台首部大数据地方法规 数据开放引入负面清单
  6. LIRe 源代码分析 5:提取特征向量[以颜色布局为例]
  7. 5G技术将如何改变我们的世界
  8. windows黑客编程系列(一):运行单一实例
  9. laravel 数据库迁移后增加字段
  10. androidx 填坑记
  11. SSL-ZYC 2133 腾讯大战360
  12. Bais(偏差)与Variance(方差)的区别
  13. 数据挖掘领域十大经典算法之—C4.5算法(超详细附代码)
  14. Python数据处理课程设计-房屋价格预测-代码
  15. SAP EWM仓储管理系统与自动化仓储硬件对接方案介绍
  16. audio type多种类型_使用tensorflow进行音乐类型的分类
  17. Oracle 12c 创建新用户报错 - ORA-65096
  18. linux(centos)du命令查看文件或目录的大小
  19. 论文中出现的 cf. i.e. s.t. e.g. w.r.t. et al. etc等英文缩写是什么意思
  20. cocos2d-x的初步学习二十三之模仿微信打飞机二

热门文章

  1. VS studio源代码管理辅助工具sourceoffsite使用过程中的错误解决方法
  2. 招聘 | 清华大学计算机系知识工程实验室博士后
  3. 国产操作系统Deepin安装
  4. 前端(HTML css JS)开发工具及常用插件推荐
  5. 宝马CIC主机清FSC的方法步骤
  6. 使用CrossApp实现版本更新管理(iOS端给AppStore链接,android端下载apk并替换)
  7. 新手CrossApp 之CAAlertView小结
  8. xmlspy2014 安装与破解
  9. 如何将卫星影像按固定比例尺输出(1:5千,1:1万等)
  10. 智慧城管数字孪生IOC系统