使用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>

Java解析xml文档之SAX解析

sax解析是一种边读边解析,仅向前读取,不能修改,用来读。sax创建XMLReader三步:SAXParserFactory factory = SAXParserFactory.newInstanc...
  • new___Smile
  • new___Smile
  • 2016年07月16日 00:59
  • 3459

Java&Xml教程(五)使用SAX方式解析XML文件

Java SAX解析机制为我们提供了一系列的API来处理XML文件,SAX解析和DOM解析方式不太一样,它并不是將XML文件内容一次性全部加载,而是连续的部分加载。javax.xml.parsers....
  • Rongbo_J
  • Rongbo_J
  • 2015年12月13日 15:09
  • 1397

SAX解析和生成XML文档

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui03...
  • ch656409110
  • ch656409110
  • 2013年09月24日 22:37
  • 10710

SAX实现对XML文件的解析

可扩展标记语言XML(eXtensible Markup Language)是一种简单灵活的文本格式的可扩展标记语言。可扩展即可自定义标记语言。 与HTML相比,XML是被设计为传输和存储数据,其焦点...
  • zuofanxiu
  • zuofanxiu
  • 2015年09月17日 15:53
  • 174

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

一、三种解析的定义。 1.DOM解析 DOM意为Document Object Model,是文件对象模型,在解析XML文件的时候,会把整个文件加载到内存。 2.SAX解析 SAX意为 Simple ...
  • u011557160
  • u011557160
  • 2013年07月31日 17:04
  • 720

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

Sax解析的步骤 1.创建工厂 SaxParserFactory 2.创建解析器 AaxParser 3.创建读取器XmlReader 4.设置时间处理器 SetContentHandl...
  • liuxin19910519
  • liuxin19910519
  • 2015年09月19日 08:59
  • 253

使用sax解析xml文件

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

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

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

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

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

使用SAX解析XML文件

SAX(Simple API for XML),是指一种接口,或者一个软件包。   DOM:文档驱动。DOM在解析文件之前把整个文档装入内存,处理大型文件时其性能很差,是由于DOM的树结构所造成的...
  • zuolongsnail
  • zuolongsnail
  • 2011年05月29日 19:57
  • 22297
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用SAX实现XML文件解析
举报原因:
原因补充:

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