`

解析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解析文件的两种主要方式:SAX(Simple API for XML)和DOM(Document Object Model)。 **1. DOM解析** DOM解析方式是将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这个树的每个...

    解析XML特殊字符方法

    有两种主要方法来解析XML中的特殊字符: **方法一:使用实体引用** 实体引用是XML中最常见的处理特殊字符的方式。当你需要在XML文档中插入特殊字符时,可以使用对应的实体引用。比如,如果你想在文本中包含一个...

    解析XML文件(字符串)的两种方法

    ### 解析XML文件(字符串)的两种方法 在软件开发过程中,XML作为一种常见的数据交换格式,在数据传输和存储中扮演着重要角色。因此,能够高效地解析和操作XML文件是必不可少的能力之一。本文将详细介绍使用Java...

    js解析XML文件

    在给定的文件中,我们可以看到使用 JavaScript 解析 XML 文件的两种方法:使用 DOMParser 对象和使用 ActiveXObject 对象。 使用 DOMParser 对象 DOMParser 对象是 Mozilla 浏览器中的一种对象,用于将 XML 字符串...

    易语言 xml解析 易语言 xml解析 教程 带源码

    常见的解析方式有DOM(Document Object Model)和SAX(Simple API for XML)两种。DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,适合小规模数据处理;SAX解析器则是事件驱动的,逐行读取XML,适合处理...

    SAP解析xml abap解析xml

    根据提供的文件信息,本文将详细解释SAP系统中如何解析XML文档,并将其内容提取到内部表中的过程。此过程涉及到了ABAP编程语言的具体应用,包括数据结构定义、数据提取逻辑以及与SAP系统的交互。 ### SAP 解析 XML ...

    xml 解析 xml 解析几何

    解析XML主要有两种方法:DOM(Document Object Model)和SAX(Simple API for XML)。 1. DOM解析: DOM解析器将整个XML文档加载到内存中,创建一个树形结构,允许开发者通过节点遍历和操作XML数据。例如,`...

    android下解析xml文件的demo

    在Android应用中,我们通常使用两种方式来解析XML:DOM(Document Object Model)解析器和SAX(Simple API for XML)解析器。 1. DOM解析: DOM解析器将整个XML文件加载到内存中,形成一个树形结构,可以方便地遍历...

    解析xml的jar包

    解析器分为两种主要类型:DOM(Document Object Model)和SAX(Simple API for XML)。DOM一次性加载整个XML文档到内存,适合小型XML文件;而SAX是事件驱动的,逐行读取,适用于处理大型文件。 JDOM是Java中一个...

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

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

    java 解析xml 多级

    首先,Java提供了两种主要的API来处理XML:DOM(文档对象模型)和SAX(简单API for XML)。DOM解析器会将整个XML文件加载到内存中,形成一个树形结构,适合处理小到中等规模的XML文档。而SAX解析器采用事件驱动的...

    xml.rar_XML c语言_c语言 xml_resolver_xml解析 c_解析xml

    XML解析通常分为两种主要方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,方便对数据进行随机访问;而SAX解析器则采用事件驱动的方式,...

    使用JDOM解析XML文件

    在解析XML文件时,JDOM提供了SAXBuilder和DOMBuilder两种方式。SAXBuilder基于事件驱动,适用于处理大型XML文件,因为它占用较少的内存。DOMBuilder则一次性加载整个XML到内存,适合小型文件,便于进行快速访问。 ...

    python解析xml文件

    本文将详细介绍如何使用两种流行的方法——`MiniDom`和`ElementTree`来解析XML文件。 #### 1. 通过 MiniDom 库解析 XML 文件 `MiniDom`是Python标准库中的一部分,它提供了DOM(Document Object Model)接口,允许...

    android 解析XML文件 生成XML文件

    以下是两种方法: 1. DOM生成:构建Document对象,添加元素和属性,然后使用Transformer输出到文件。 2. StreamWriter(Java的javax.xml.stream.*包):创建XMLStreamWriter,然后顺序写入元素和属性,最后关闭流。...

    比较通用的xml解析方法

    在处理XML文件时,我们通常会遇到两种主要的解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中,形成一个树形结构,方便进行遍历和修改。而SAX则采用事件驱动模型...

    关于解析xml的一些demo

    解析XML主要有两种方式:DOM(Document Object Model)和SAX(Simple API for XML)。 1. DOM解析:它将整个XML文档加载到内存中,形成一个树形结构。每个节点代表XML文档的一个部分,可以通过遍历节点来访问和修改...

    C++解析xml之完整代码(完整解析)

    XML解析分为两种主要类型:DOM解析和SAX解析。DOM解析会将整个XML文档加载到内存中形成一个树形结构,允许任意位置的访问,但消耗较大内存。SAX解析则采用事件驱动的方式,逐行读取XML文件,只在需要时处理特定事件...

Global site tag (gtag.js) - Google Analytics