首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

施用SAX解析XML文件

2012-11-07 
使用SAX解析XML文件?xml version1.0 encodingutf-8 ?booktitleJava实例一百例/titlepage i

使用SAX解析XML文件

<?xml version="1.0" encoding="utf-8" ?><book>  <title>Java实例一百例</title>    <page id="1"><title>基础知识篇</title><file>base.htm</file>  </page>    <page id="3">  <title>SWING篇</title><file>swing.htm</file>  </page>    <page id="28"><title>EJB篇</title><file>ejb.htm</file>  </page>    <page id="33"><title>DOM篇</title><file>xmldom.htm</file>  </page></book>
?

?

?

package jp.co.fujixerox.pemaster.grc.server.module.admin.definition;import javax.xml.parsers.*;import org.xml.sax.*;import org.xml.sax.helpers.*;import java.io.*;/**  * <p>Title: 使用SAX解析XML</p>  * <p>Description: 使用SAX接口解析book.xml文件</p>  * <p>Copyright: Copyright (c) 2003</p>  * <p>Filename: SaxParsePage.java</p>  */public class SaxParsePage extends DefaultHandler {        /**      *<br>方法说明:主方法,声明解析工厂和加载XML文件      *<br>输入参数:      *<br>返回类型:      */    public static void main(String[] argv) {        try {            //建立SAX解析工厂              SAXParserFactory spfactory = SAXParserFactory.newInstance();            //生成SAX解析对象              SAXParser parser = spfactory.newSAXParser();            //指定XML文件,进行XML解析              parser.parse(new File("book.xml"), new SaxParsePage());        } catch (Exception e) {            e.printStackTrace();        }    }    /**      *<br>方法说明:文件打开时调用      *<br>输入参数:      *<br>返回类型:      */    public void startDocument() {        System.out.println("***开始解析***");    }    /**      *<br>方法说明:当遇到开始标记时调用      *<br>输入参数:      *<br>返回类型:      */    public void startElement(String uri, String localName, String qName,            Attributes attributes) throws SAXException {        System.out.println("节点开始:" + qName);        for (int i = 0; i < attributes.getLength(); i++) {            System.out.println("节点属性名称:" + attributes.getQName(i));            System.out.println("节点属性值:" + attributes.getValue(i));        }    }    /**      *<br>方法说明:当分析器遇到无法识别为标记或者指令类型字符时调用      *<br>输入参数:      *<br>返回类型:      */    public void characters(char[] ch, int offset, int length)            throws SAXException {        System.out.println("节点数据:" + new String(ch, offset, length));    }    /**      *<br>方法说明:当遇到节点结束时调用      *<br>输入参数:      *<br>返回类型:      */    public void endElement(String uri, String localName, String qName) {        System.out.println("节点结束:" + qName);    }    /**      *<br>方法说明:当到文档的末尾调用      *<br>输入参数:      *<br>返回类型:      */    public void endDocument() {        System.out.println("****文件解析完毕****");    }}
?

?

热点排行