使用SAX实现XML文件解析

转载 2006年05月18日 15:28:00

第一个文件:SAXHandler.java

功能:SAX事件解析

import java.util.Hashtable;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;


public class SAXHandler extends DefaultHandler 
{
 private Hashtable table = new Hashtable();
 private String currentElement = null;
 private String currentValue = null;
 public void setTable(Hashtable table)
 {
  this.table = table;
 }
 public Hashtable getTable()
 {
  return table;
 }

 public void startElement(String uri, String localName, String qName, Attributes attributes)
 throws SAXException
 {
  currentElement = qName;
 }
 public void characters(char[] ch, int start, int length)
 throws SAXException
 {
  currentValue = new String(ch, start, length);
 }
 public void endElement(String uri, String localName, String qName)
 throws SAXException
 {
  if (currentElement.equals(qName))
   table.put(currentElement, currentValue);
 }
}

 

第二个文件:SAXHandlerTest.java

功能:XML文件解析示例


import java.util.Hashtable;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;


 
public class SAXHandlerTest {
 public static void main(String[] args) {
  
   
  String file = "c://people.xml";
  SAXParserFactory spf = SAXParserFactory.newInstance();
  SAXParser sp = null;
  try {
   sp = spf.newSAXParser();
  }
  catch (Exception ex) {
   ex.printStackTrace();
  }
  SAXHandler handler = new SAXHandler();
  try {
   sp.parse(file, handler);
  }
  catch (Exception ex) {
   ex.printStackTrace();
  }
  
  Hashtable hashTable = handler.getTable();
  System.out.println("<TABLE BORDER=2><CAPTION>教师信息表</CAPTION>");
  System.out.println("<TR><TD>姓名</TD>" + "<TD>" +
  (String)hashTable.get(new String("name")) + "</TD></TR>");
  System.out.println("<TR><TD>学院</TD>" + "<TD>" +
  (String)hashTable.get(new String("college"))+"</TD></TR>");
  System.out.println("<TR><TD>电话</TD>" + "<TD>" +
  (String)hashTable.get(new String("telephone")) + "</TD></TR>");
  System.out.println("<TR><TD>备注</TD>" + "<TD>" +
  (String)hashTable.get(new String("notes")) + "</TD></TR>");
  System.out.println("</TABLE>");

 }
}

第三个文件:people.xml

功能:例子XML文件

<?xml version="1.0" encoding="gb2312"?>
<person>
<name>王小明</name>
<college>信息学院</college>
<telephone>6258113</telephone>
<notes>男,1955年生,博士,95年调入海南大学</notes>
</person>

相关文章推荐

关于Android XML文件的解析方式DOM,SAX,Pull的具体实现。

一、三种解析的定义。 1.DOM解析 DOM意为Document Object Model,是文件对象模型,在解析XML文件的时候,会把整个文件加载到内存。 2.SAX解析 SAX意为 Simple ...

Android开发之下载Tomcat服务器的xml文件并使用SAX解析

解析 XML 通常有两种方式,DOM 和 SAX。DOM 虽然是 W3C 的标准,提供了标准的解析方式,但它的解析效率一直不尽如人意,因为使用DOM解析XML时,解析器读入整个文档并构建一个驻留内存的...

安卓中使用SAX解析XML文件样例

在项目开发中我们可能需要读取服务器,并从服务器解析相关数据,而XML文件格式为数据的存储提供了很多方便,因此,掌握XML的解析方式,至少一种解析方式将为网络项目的开发起到如虎添翼的作用。本文采用SAX...
  • yxtouch
  • yxtouch
  • 2014年09月10日 21:16
  • 788

使用SAX解析XML文件

SAX(Simple API for XML),是指一种接口,或者一个软件包。   DOM:文档驱动。DOM在解析文件之前把整个文档装入内存,处理大型文件时其性能很差,是由于DOM的树结构所造成的...

使用sax解析xml文件

SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SA...

使用Sax和Pull方法 解析XML文件

Sax解析的步骤 1.创建工厂 SaxParserFactory 2.创建解析器 AaxParser 3.创建读取器XmlReader 4.设置时间处理器 SetContentHandl...

使用SAX或者DOM或者pull解析XML文件的使用

在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 SAX是一...

java的SAX库实现XML文件的解析

利用java的SAX库实现XML文件的解析

个人安卓学习笔记---分别利用SAX、DOM和Pull实现对XML文件的解析并进行单元测试

。。首先我们有如下的xml文件,我要对其进行解析 school.xml Tom 34 Jack 20 Mary 20 John ...

Android使用Dom与SAX解析XML文件支持任意对象的读

本工具类:主要运用到了java的反射来解析泛型的属性,并根据泛型属性来设置对象属性值,如果这点弄很熟悉的话,对于类似这种小框架的话应该都不成问题, 我的上一编文章没使用反射与泛型,各位大神可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用SAX实现XML文件解析
举报原因:
原因补充:

(最多只允许输入30个字)