解析XML

Pull解析

1、获取XmlPullParserFactory实例

  XmlPullParserFactory factory = XmlPullParserFactory.newInstanc();

2、借助XmlPullparserFactory实例获取XmlPullParser对象

  XmlPullParser xmlPullParser = factory.newPullParser();

3、调用setInput()解析数据

  xmlPullParserl.setInput(new StringReader(xmlData));

4、调用getEvent()得到当前解析事件

  int eventType = xmlPullParser.getEventType();

5、利用while循环解析

  while(eventType != XmlPullParser.END_DOCUMENT){

    String nodeName = xmlPullParser.getName();

    switch(eventType){

      case XmlPullParser.START_TAG:{

        if("id".equals(nodeName)){

          id = xmlPullParser.nextText();

        }else if("name".equals(nodeName)){

          name = xmlPullParser.nextText();

        }else if("version".equals(nodeName)){

          version = xmlPullParser.nextText();

        }

        break;

      }

    //完成解析某个节点

    case XmlPullParser.END_TAG:{

      if("app".equals(nodeName)){

        Log.d("MainActivity","id is"+id);

        Log.d("MainActivity","name is"+name);

        Log.d("MainActivity","version is"+version);

      }

      break;

    default:

      break;

  }

  eventType = xmlPullParser.next();

 }

......

SAX解析

1、创建一个类继承自DefaultHandler,并重写5个方法(startDocument()、startElement()、characters()、endElement()、endDocument())

2、创建SAXParserFactory实例

  SAXParserFactory factory = SAXParserFactory.newInstance();

3、通过factory创建XMLReader对象

  XMLReader xmlReader = factory.newSAXParser().getXMLReader();

4、创建ContentHandler对象

  ContentHandler handler = new ContentHandler();

5、将ContentHandler的实例设置到XMLReader中

  xmlReader.setContentHandler(handler);

6、开始解析

  xmlParser.parse(new InputSource(new StringReader(xmlData)));

          

  

时间: 2024-12-27 08:26:23

解析XML的相关文章

【dom4j】解析xml为map

dom4j解析xml文件 <?xml version="1.0" encoding="utf-8"?> <workflows> <queryRequest> <branchId>88037062</branchId> <merSysId>00000317</merSysId> <queryNo>948983692</queryNo> <billType&

四种生成和解析XML文档的方法详解

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 一.介绍及优缺点分析 1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的. [优点]      ①允许应用

DOM解析XML

DOM的文档驱动 处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成 DOM树上的每个Node对象 优点是:可以对XML文档进行增删改查的复杂操作,可以随时按照节点间的关系访问数据 缺点: 受内存容量限制,不能处理大的文档,由于没有索引机制,处理效率较低 DOM(文档对象模型),为XML文档的解析定义了一组接口,解析器读入整个文档,然后构造一个驻留内存的树结构,然后代码就可以使用DOM接口来 操组整个树结构,其他点如下: 优点:整个文档树都在内存当中,便于操作:支持删

SAX解析XML

SAX 事件处理(事件驱动),不需要载入整个文档,流机制读取,分析XML文档 startDocument startElement character endElement endDocument 当sax扫描到文档时就调用startDocument函数,sax扫描到文档结束符时就调用endDocument函数,也就是说当sax扫描到哪个节点时就会调用相应的函数,同时还会携带节点的属性值. 当它扫描到节点内容值时就会调用character函数 Sax主要是用来对xml文件遍历,解析,不提供修改.

DOM的概念和简单应用:使用DOM解析XML数据

概念:DOM是Document Object Model的简称,即文档数据模型. Oracle公司提供了JAXP(Java API for XML Processing)来解析XML.JAXP会把XML文档转换成一个DOM树,JAXP的三个包都在JDK中. org.w3c.dom;W3C推荐的解析文档的接口 org.xml.sax;使用SAX解析XML文档的接口 javax.xml.parsers;解析器工厂工具 一.使用DOM解析XML文档的步骤 1.创建解析器工厂对象,即DocumentBu

Python数据清理之解析XML文件

解析XML 使用Beautiful Soup

[C#]记一次解析XML转对象的笔记

项目中调用第三方API,返回格式是XML字符串,需要将XML反序列化为对象,格式如下: 1 <?xml version="1.0"?> 2 <Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" totalCount="123" resultCode

XML引入,DOM 方式解析XML 原理,SAX 方式解析XML

XML 简介 Xml(eXtensible Markup Language) 即可扩展标记语言.提供了一套跨平台.跨网络.跨程序的语言的数据描述方式,使用XML 可以方便地实现数据交换.系统配置.内容管理等常见功能. 元素VS 节点 节点包括元素节点.属性节点.文本节点:元素一定是节点,但是节点不一定是元素: <?xml version="1.0" encoding="UTF-8"?> <emp> <empName empNo=&quo

【收藏用】--切勿转载JAVA 使用Dom4j 解析XML

原帖地址 : http://blog.csdn.NET/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1)下载dom4j-1.6.1.jar (2)下载junit-4.10.jar 2.温馨提示 解析XML过程是通过获取Document对象,然后继续获取各个节点以及属性等操作,因此获取Document对象是第一步,大体说来,有三种方式: (1)自己创建Document对象   Document docu

Xpath解析xml

Xpath解析xml其实最主要的是查找xml文档中信息,而且不需要了解xml文档结构 package com.huawei.xml; import java.io.InputStream;import java.util.List; import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.input.SAXBuilder;import org.jdom2.xpath.XPathExpression;import or