`
375809600
  • 浏览: 153148 次
  • 来自: 湖北
社区版块
存档分类
最新评论

sax解析演示示例

 
阅读更多

sax解析个人感觉是非常麻烦的,但是是sun公司的标准,所以还是必须得学习:示例代码有两个功能,一个是列出所有的标签和标签的值,一个是列出你想要的标签的值
xml文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><persons>

<person>

<name>wuyihua</name>

<grade>98</grade>

<id>1</id></person>

<person job="student">

<name>zengxiangjian</name>

<grade>100</grade>

<id>3</id></person>

</persons>





解析类:

package com.saxparser.domain;

 

import javax.sql.rowset.spi.XmlReader;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

import org.xml.sax.XMLReader;

import org.xml.sax.helpers.DefaultHandler;

 

public class Demo1 {

 

/**

* @param args

* @throws Exception

* @throws ParserConfigurationException

*/

public static void main(String[] args) throws ParserConfigurationException,

Exception {

SAXParserFactory fa = SAXParserFactory.newInstance();// 得解析工厂

SAXParser parser = fa.newSAXParser();// 得解析器

XMLReader reader = parser.getXMLReader();// 得到数据

reader.setContentHandler(new ListHandler());// 设置解析器,解析器要自己写;

reader.parse("src/person.xml");// 获取xml文档内容

}

 

}

 

class ListHandler extends DefaultHandler {

private String current;// 记录现在的标签

private String needTag;// 记录你想要的标签

private int currentNum;// 记录现在是第几个标签

private String tagValue;

 

@Override

public void startElement(String uri, String localName, String qName,

Attributes attributes) throws SAXException {

System.out.println("<" + qName + ">");// 打印所有的开始标签

 

current = qName;

 

for (int i = 0; i < attributes.getLength() && attributes != null; i++) {// for遍历所有的属性

System.out.println(attributes.getValue(i));

 

}

super.startElement(uri, localName, qName, attributes);

}

 

@Override

public void characters(char[] ch, int start, int length)

throws SAXException {

if ("name".equals(current)) {//这里我想获取第一个name标签的值

needTag = current;

tagValue = new String(ch, start, length);

System.err.println(tagValue);// 用err来标记想要的标签的值

}

System.out.println(new String(ch, start, length));// 打印所有的标签的值

super.characters(ch, start, length);

}

 

@Override

public void endElement(String uri, String localName, String qName)

throws SAXException {

current = null;

System.out.println("</" + qName + ">");// 打印结束标签的名称

super.endElement(uri, localName, qName);

}

 

}




成果网图片

 

分享到:
评论

相关推荐

    android使用SAX解析xml

    - `xmlSAXPaserDemo`可能是一个包含示例代码的Android项目,用于演示如何实际使用SAX解析XML文件。 - 项目中可能包括网络请求模块、SAX解析器处理类以及展示解析结果的UI部分。 通过以上步骤,开发者可以在...

    dom4j下sax解析xml

    在提供的“analysis_xml”项目中,很可能包含了一个示例,演示了如何使用dom4j的SAX解析器解析XML文件。这样的测试项目有助于理解SAX解析的工作原理,并在实际开发中应用。 总结起来,dom4j库提供了DOM和SAX两种XML...

    SAX解析XML实例

    在压缩包文件"TestSAX"中,可能包含了一个简单的SAX解析示例程序,用于演示如何解析XML文档并输出相关元素信息。你可以根据上述步骤查看和运行代码,理解SAX解析的实际工作流程。 总的来说,SAX解析XML是一种高效且...

    SAX解析xml,vdx等文件

    在压缩包中的"ReadXXML"文件可能是用于演示或实现如何读取XML文件的代码示例。这个文件可能包含了使用SAX解析XML或者vdx文件的具体Java或Python代码,包括设置解析器、注册事件处理器、处理XML事件等步骤。 总的来...

    XML-java.rar_XML SAX_sax_sax xml_sax 解析 xml_xml using dom

    "sax_xml sax_解析_xml"标签表明了本压缩包包含使用SAX解析XML的示例代码。 3. **JDOM**:JDOM是一个Java API,专门用于读写XML文档。它提供了一个更面向Java的对象模型,使得XML处理更加直观。JDOM在DOM的基础上...

    SAX解析XML文件实例

    在提供的压缩包"**saxloadxml**"中,很可能包含了一个使用SAX解析XML的Java示例项目。测试代码会演示如何创建一个SAX解析器实例,注册事件处理器,并启动解析过程。运行这个测试代码,你可以直观地了解SAX解析XML的...

    Android之SAX解析XML

    在Android开发中,处理XML数据是一项常见的任务,无论是从服务器获取数据还是本地文件读取,XML因其结构化和可读性而...在`SaxTest`项目中,你可以找到一个具体的示例,演示如何将这些概念整合到实际的Android应用中。

    SAX解析Xml

    同时,`andoridSax`这个文件名可能是示例代码或资源文件,可以包含用于演示SAX解析的XML文件和相关代码。 总之,SAX解析XML是Android应用处理XML数据的一种高效方法,尤其适用于处理大文件。通过实现`...

    android sax解析xml模板源码下载

    本示例"android sax解析xml模板源码"提供了一个使用SAX解析XML的实例,方便开发者直接导入到自己的项目中使用。 SAX解析XML的基本流程如下: 1. **创建解析器**:在Android中,我们需要使用`SAXParserFactory`来...

    Android PULL SAX解析XML

    本文将详细介绍如何使用SAX(Simple API for XML)和PULL(Pull Parser)这两种方法来解析XML,并以一个简单的XML示例"Person"为例,通过源代码演示解析过程。 一、SAX解析 SAX是一种基于事件驱动的解析器,它不...

    DOM SAX解析XML文档的范例(工程包)

    这个“DOM SAX解析XML文档的范例”工程将演示如何使用Java中的DOM和SAX API来解析XML文件,提供实践案例来帮助开发者理解和掌握这两种方法。工程中的XMLDemo可能是包含示例代码的类,展示了如何使用DOM和SAX解析XML...

    Android XML解析(DOM、PULL、SAX三种方式)

    `DomXmlOperate`中可能没有包含SAX解析的示例,因为通常SAX解析的代码比DOM和PULL更复杂,需要自定义事件处理器。 总结来说,DOM解析适合小规模、需频繁查询的XML文件;PULL解析适用于处理大型XML文件,节省内存;...

    sax_xml_demo

    在这个项目中,开发者可能创建了一个程序,演示如何使用SAX解析XML文档。接下来,我们将深入探讨SAX解析的工作原理和关键概念。 1. **SAX解析原理**: - SAX解析器逐行读取XML文档,遇到每个元素、属性、文本节点...

    android在线解析xml示例

    - SAX解析:创建一个实现了`DefaultHandler`的类,重写`startElement()`、`endElement()`等方法。然后创建`SAXParserFactory`,获取`SAXParser`,并调用`parse()`方法。 ```java SAXParserFactory factory = ...

    XML_DOM_SAX.rar_ XML_DOM_SAX_c# sax_dom解析xml_xml parser csharp_x

    在这个"XML_DOM_SAX.rar"压缩包中,包含了可能的C#代码示例,用于演示如何使用DOM和SAX解析XML。`www.pudn.com.txt`可能是包含相关资源链接的文本文件,而`XML_DOM&SAX`可能是包含C#代码的文件,可以解压后查看具体...

    test_sax.rar_RSS_sax

    标题中的“test_sax.rar_RSS_sax”表明这是一个关于使用SAX解析器处理RSS Feed的示例项目。SAX(Simple API for XML)是一种基于事件驱动的XML解析方法,它不像DOM(Document Object Model)那样将整个XML文档加载到...

    asd.rar_ASD_rdf_rdf sax

    描述中提到的“RDF的解析例程,使用XML的SAX或者DOM来处理RDF文档”表明压缩包内可能有代码示例,演示如何利用SAX解析器读取和处理RDF数据。DOM(Document Object Model)是另一种常见的XML解析方法,它将整个XML...

    SaxRead.rar_sax_sax read_saxread

    总的来说,"SaxRead.rar"中的Java实现可能提供了一个简单的示例,演示了如何使用SAX解析器来高效地读取和处理XML文件。通过理解和应用这些基本概念,开发者可以构建自己的SAX解析器,以适应特定的应用场景,例如过滤...

    SaxParse解析

    在上述的`SaxParseXmlDemo`示例中,可能包含了具体的代码实现,演示了如何使用SAX解析XML文件并处理解析过程中的事件。这个例子可以帮助我们更好地理解SAX解析的工作原理,并提供了一个实际应用的参考。 总的来说,...

    SAX或PULL或DOM解析XML

    - `SAX_XML` 暗示了一个使用SAX解析器处理XML的示例代码或结果。 - `A_XML_zuoye` 可能是关于XML解析的作业,可能包括对`A_XML`的解析任务。 - `TestXml 2` 可能是一个测试XML解析的代码文件,可能是针对不同解析...

Global site tag (gtag.js) - Google Analytics