XML文件:
<?xml version="1.0" encoding="utf-8"?> <persons> <person> <name>java小强</name> <sex>man</sex> <age>30</age> </person> <person> <name>崔素强</name> <sex>man</sex> <age>26</age> </person> </persons>
为此建立响应的对象:
package com.test; public class Xml { private String name; private String sex; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
参考的解析代码:
package com.test; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /** * @说明 SAX解析XML * @author cuisuqiang * @version 1.0 * @since */ public class SaxDemo{ public static void main(String[] args) { try { SaxDemo sd = new SaxDemo(); String file = "C:\\p.xml"; // 文件存放位置 sd.parserXml(file); } catch (Exception e) { e.printStackTrace(); } } public void parserXml(String fileName) throws Exception { SAXParserFactory saxfac = SAXParserFactory.newInstance(); SAXParser saxparser = saxfac.newSAXParser(); InputStream is = new FileInputStream(fileName); SAXHandler sh = new SAXHandler(); saxparser.parse(is, sh); List<Xml> list = sh.getPersons(); System.out.println("====输出解析到的内容===="); for(Xml x : list){ System.out.println(x.getName() + "\t" + x.getSex() + "\t" + x.getAge()); } } } class SAXHandler extends DefaultHandler { private List<Xml> list = null; private Xml xml = null; private String str = null; public List<Xml> getPersons() { return list; } public void startDocument() throws SAXException { list = new ArrayList<Xml>(); System.out.println("XML解析开始"); } public void endDocument() throws SAXException { System.out.println("XML解析结束"); } public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if("person".equals(qName)){ xml = new Xml(); System.out.println("开始实体解析"); } } public void endElement(String uri, String localName, String qName) throws SAXException { if("name".equals(qName)){ xml.setName(str); } if("sex".equals(qName)){ xml.setSex(str); } if("age".equals(qName)){ xml.setAge(Integer.parseInt(str)); } if("person".equals(qName)){ list.add(xml); System.out.println("实体解析结束"); } } // XML节点的内容会进入此方法 public void characters(char[] ch, int start, int length) throws SAXException { str = new String(ch, start, length); } }
请您到ITEYE网站看原创,谢谢!
http://cuisuqiang.iteye.com/ !
自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!
相关推荐
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
- `xmlSAXPaserDemo`可能是一个包含示例代码的Android项目,用于演示如何实际使用SAX解析XML文件。 - 项目中可能包括网络请求模块、SAX解析器处理类以及展示解析结果的UI部分。 通过以上步骤,开发者可以在...
使用sax解析xml,有详细的解析及源代码实例
以下是使用SAX解析XML文件的步骤: 1. 引入依赖:在Android项目中,通常需要添加`xmlpull`库,它包含了SAX解析器。可以在`build.gradle`文件中添加依赖: ``` implementation 'xpp3:xpp3:1.1.4c' ``` 2. 创建...
本教程将详细讲解如何在Android中使用SAX解析XML。 首先,要使用SAX解析XML,我们需要理解其工作原理。SAX解析器会逐个读取XML文档的元素,每当遇到文档的开始、结束、文本等事件时,就会触发相应的回调方法。...
使用SAX解析XML文件的基本步骤如下: 1. **导入库**:首先需要导入`org.xml.sax`包下的相关类,如`SAXParserFactory`,`SAXParser`和`DefaultHandler`。 2. **创建解析工厂**:使用`SAXParserFactory.newInstance()`...
下面我们将详细讨论如何在Android中使用SAX解析XML。 首先,我们需要了解SAX解析的基本原理。SAX解析器在读取XML文档时,会触发一系列的事件,如开始文档、开始元素、结束元素、字符数据等。开发者需要定义一个...
### 使用SAX解析XML文件详解 #### 一、XML与SAX简介 XML(Extensible Markup Language,可扩展标记语言)是一种用于标记电子文件使其具有结构性的标记语言,旨在克服HTML的一些不足,使得数据能够被不同系统间共享...
本实例“JAVA100例之实例69 JAVA使用SAX解析XML”将详细讲解如何利用SAX解析XML文件。SAX解析器通过触发一系列的回调事件来处理XML文档,程序员需要定义一个实现了`org.xml.sax.helpers.DefaultHandler`接口的类,...
本教程将聚焦于如何在Android应用程序中使用SAX解析XML。 一、SAX解析器工作原理 SAX解析器通过读取XML文档,当遇到特定的XML元素、属性或其他结构时,会触发相应的事件,如开始元素、结束元素、字符数据等。开发者...
下面是一个SAX解析XML的示例(有点长,因为详细注解了SAX事件处理的所有方法),SAX API中主要有四种处理事件的接口,它们分别是ContentHandler,DTDHandler, EntityResolver 和 ErrorHandler 。下面的例子可能...
本示例将详细解释如何在Java中使用SAX解析XML文档,并通过注释进行详细说明。 首先,我们需要引入SAX解析器的依赖库,通常这可以通过在项目构建配置中添加JAXB或Xerces实现来实现。 ```java // 引入必要的库,如...
本教程将详细讲解如何在Android中使用SAX解析XML。 SAX解析器是事件驱动的,它逐行读取XML文档,当遇到特定的元素、属性或事件时,会触发相应的回调函数。这种方式避免了整个XML文档加载到内存中,因此对于大型XML...
本文将详细介绍如何在Android中使用SAX解析XML。 首先,我们需要了解SAX解析的基本流程。SAX解析XML的过程是基于事件的,当解析器读取XML文档时,会触发一系列的事件,如开始文档、结束文档、开始元素、结束元素等...
以下是一个使用SAX解析XML文件的基本步骤: 1. **创建解析器**: 首先,我们需要创建一个SAX解析器实例。在Java中,这通常通过`SAXParserFactory`类完成。设置解析器属性,然后调用`newSAXParser()`方法获取`...
总结来说,"saxloadxml"项目提供了使用SAX解析XML文件的一个实例,可以帮助开发者了解如何利用SAX解析器处理XML文档,尤其是在性能和内存使用方面有较高要求的情况下。通过学习和实践这个项目,你可以提升处理XML...
本文将深入探讨如何使用SAX解析XML并获取元素的值或内容。 首先,SAX解析器以流式方式读取XML文档,当遇到文档的不同部分时,会触发相应的事件,如开始文档、开始元素、结束元素等。开发者可以注册事件处理器来响应...
**SAX解析XML的基本原理:** SAX解析器以流式的方式读取XML文档,当遇到文档的各个元素时,会触发相应的事件,如开始文档、开始元素、结束元素、字符数据等。程序员通过实现SAX解析器的回调接口来处理这些事件,从而...
使用SAX解析XML"的项目中,你可能会看到以下关键组件: 1. **XML解析器实例化**:首先,你需要创建一个`SAXParserFactory`实例,然后用它来生成`SAXParser`。这一步是配置和初始化解析器的过程。 ```java ...