`

解析XML的两种方法

    博客分类:
  • xml
 
阅读更多
一、用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文件(字符串)的两种方法

    解析XML文件(字符串)的两种方法,dom4j解析XML时候忽略DTD文件验证

    xml解析文件的两种方式

    使用SAX DOM两种解析方式解析文件

    XML学习笔记(包括Java的两种解析XML的方法)

    XML学习笔记(包括Java的两种解析XML的方法)。 XML基础语法的介绍,DTD的介绍和使用。 可快速入门,也可当手册使用。

    详 解Java解析XML

    详解Java解析XML的四种方法详解Java解析XML的四种方法详解Java解析XML的四种方法详解Java解析XML的四种方法详解Java解析XML的四种方法

    python解析xml文件

    python解析xml文件,python语言解析xml文件的常用的有两种方式: 通过MiniDom库解析xml文件 通过ElementTree库解析xml文件

    android 解析XML文件 生成XML文件

    支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写

    XML解析MSXML解析

    XML解析,有MSXML解析,和CMauk解析两种实例

    两种解析xml方式的

    两种解析xml方式的 demo,log4j,xmlbean等都是采用的最基础的方式。

    经典的DOM解析XML范例

    用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)...

    Java解析XML文件的两种方式详解

    NULL 博文链接:https://dyygusi.iteye.com/blog/1996153

    XML的两种解析sax和dom

    xml的两种解析方式sax解析和dom解析的源代码

    castor-1.2解析XML

    1、xml格式文件的用法,我们学过的xml有两种用法:一,作为配置文件。二、作为数据存储文件。 其中作为数据存储文件有很多优点,比如,数据更加规范,数据校验等。 2、这个工具的功能:能够把xml文件存储的数据和...

    android xml解析1

    在JAVA中有两种常见的XML解析方式,DOM和SAX,DOM在解析的时候会将所有的数据一次性载入内存中进行解析,在数据量比较大的情况下,效率非常低.尤其在手机这种对内存和性能要求比较苛刻的设备里面这种方法并不可取. ...

    xml数据前后台解析:jdom与dom4j源码,程序可以跑

    xml数据前后台解析;提供了两种方式:dom4j与jdom对xml文件、xml字符串的读与写操作;同时实现在前台用jquery解析xml,将数据展示在页面上,程序可以跑

    sax解析xml文件

    sax解析xml,本文档用了两种方法,xml文件分别放在 xml文件下和类的同目录下;要解析的文件流分为:InputSource和InputStream两种方法

    http请求网络解析xml以及JSON的demo

    http请求网络的demo,实现httpUrlConnection与httpClient两种请求方式,并对返回数据进行解析,解析xml和JSON两种格式的数据。

    java解析xml及4种常用解析比较

    SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员...

    java解析xml,dom解析,jsoup解析,完整项目

    java解析xml,dom解析,jsoup解析,两种不同方式的解析,完整项目

    jdom包解析xml数据

    JDOM是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序。它的设计包含 Java 语言的语法乃至语义。 JDOM是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果.

Global site tag (gtag.js) - Google Analytics