XML的SAX接口编程实例

原创 2002年04月24日 09:25:00

这个例子展示了如何用SAX接口来解析XML文档

下面是我要解析的文档emp.xml

<?xml version="1.0"?>
<employs>
<employ>
<name>aaa</name>
<age>33</age>
<sex>m</sex>
<tel>88881234</tel>
<img>1.jpg</img>
</employ>
<employ>
<name>bbb</name>
<age>35</age>
<sex>m</sex>
<tel>88882345</tel>
<img>2.jpg</img>
</employ>
<employ>
<name>ccc</name>
<age>24</age>
<sex>f</sex>
<tel>888845657</tel>
<img>3.jpg</img>
</employ>
<employs>

我使用的开发环境是Jbuilder5,下面就是java程序

import java.io.IOException;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.apache.xerces.parsers.SAXParser;
import java.util.Stack;


public class XmlToHtml extends DefaultHandler {

String strName;
String strAge;
String strSex;
String strTel;
String strImage;


private Stack stackName=new Stack();
private Stack stackAge=new Stack();
private Stack stackSex=new Stack();
private Stack stackTel=new Stack();
private Stack stackImage=new Stack();
private int flag;

  public static void main(String[] argv) {


    if (argv.length != 1) {
      System.out.println("Usage: java XmlToHtml [URI]");
      System.exit(0);
    }
    String uri = argv[0];

    try {
      XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
      XmlToHtml XmlToHtmlInstance = new XmlToHtml();
      parser.setContentHandler(XmlToHtmlInstance);
      parser.parse(uri);
    }
    catch(IOException ioe) {
      ioe.printStackTrace();
    }
    catch(SAXException saxe) {
      saxe.printStackTrace();
    }

  }
  public void characters(char[] ch, int start, int length) throws SAXException {
    String s = new String(ch, start, length);
    if (ch[0] == '/n')
     return;
    if(flag==1)
      {stackName.push(s);}
    else if(flag==2)
      {stackAge.push(s);}
    else if(flag==3)
      {stackSex.push(s);}
    else if(flag==4)
      {stackTel.push(s);}
    else if(flag==5)
      {stackImage.push(s);}

  }
  public void endDocument() throws SAXException {
    for (int count=stackName.size()-1;count>=0;count--){

      String strName=stackName.elementAt(count).toString();
      String strAge=stackAge.elementAt(count).toString();
      String strSex=stackSex.elementAt(count).toString();
      String strTel=stackTel.elementAt(count).toString();
      String strImage=stackImage.elementAt(count).toString();
      System.out.println(strName+" "+strAge+" "+strSex+" "+strTel+" "+strImage+"");
      
//输出解析后的数据
    }
  }


  public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    if(localName.equals("name" ))
       {flag=1;}
    else if (localName.equals("age"))
       {flag=2;}
    else if(localName.equals("sex"))
       {flag=3;}
    else if(localName.equals("tel"))
       {flag=4;}
    else if(localName.equals("img"))
       {flag=5;}

  }
}

java--通过sax方式解析xml文件的简单实例

1.重写的继承自DefaultHandler的方法,部分代码如下: @Override public void startElement(String uri, String localName,...
  • a1491758730
  • a1491758730
  • 2015年10月18日 09:36
  • 763

XML解析之SAX解析过程代码详解

上一篇谢了解析原理和过程,这里应用代码直观认识这个原理: 新建Demo1类: import java.io.File; import javax.xml.parsers.SAXParser; ...
  • qq_32059827
  • qq_32059827
  • 2016年05月31日 13:12
  • 944

java中用SAX解析XML

原文地址:http://www.cnblogs.com/allenzheng/archive/2012/12/01/2797196.html 注:考虑到自己程序中表结构比较大,有几百个字段,再加...
  • w2393040183
  • w2393040183
  • 2016年07月15日 11:11
  • 1663

SAX编程解析xml文件

SAX 编程 SAX解析xml文档的时候,即对文档进行处理,而不必等到整个文档装载完才会对文档进行操作。【边解析边执行】 SAX是采用事件处理的方式解析xml文件,利用SAX解析xml文档,涉及两个部...
  • blusher
  • blusher
  • 2017年02月11日 23:22
  • 96

使用SAX解析将xml的文件内容结构保存到java对象中

在Java使用Sax解析xml文件中,我们介绍了如何用SAX解析xml文件,接下来我们继续学习如何将一个xml文件的内容结构保存到一个java实例对象中 一、xml文件如下 计...
  • kingsonyoung
  • kingsonyoung
  • 2016年07月22日 15:17
  • 1440

XML两种解析思想:DOM和SAX

一、什么是XML英文全称为Extensible Markup Language,翻译过来为可扩展标记语言。现实生活中存在着大量的数据,在这些数据之间往往存在一定的关系,我们希望能在计算机中保存和处理这...
  • wujingjing_crystal
  • wujingjing_crystal
  • 2016年09月27日 18:31
  • 746

使用SAX方式解析XML

一、创建XML文件 目录结构: 二、新建一个带有main方法的类(SAXTest.java)public class SAXTest { public static void main(S...
  • L_in12
  • L_in12
  • 2016年07月13日 14:17
  • 4921

利用Dom,Sax,Pull三种方式解析xml文件

最近找工作,看到许多公司的要求里都写了要会xml解析,所以就把之前的xml解析知识又重新回顾了一下,写个小例子. 解析xml文件常用的几种方式也就dom,sax,pull了,并且面试官经常问到的也是这...
  • qiang_xi
  • qiang_xi
  • 2015年11月29日 20:15
  • 1159

XML解析(一),SAX解析XML

一、概述 SAX,全称Simple API for XML,是一种以事件驱动的XMl API,是XML解析的一种新的替代方法,解析XML常用的还有DOC解析,PULL解析(Android特有),SAX...
  • ydxlt
  • ydxlt
  • 2015年12月05日 09:38
  • 15075

Java解析xml文档之SAX解析

sax解析是一种边读边解析,仅向前读取,不能修改,用来读。sax创建XMLReader三步:SAXParserFactory factory = SAXParserFactory.newInstanc...
  • new___Smile
  • new___Smile
  • 2016年07月16日 00:59
  • 3556
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML的SAX接口编程实例
举报原因:
原因补充:

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