欢迎光临
我们一直在努力

java的xml编程(sax)-JSP教程,Java与XML

建站超值云服务器,限时71元/月

当前sax api有两个版本。我们用第二版(见资源)来做示例。第二版中的类名和方法名与第一版都有出入,但是代码的结构是一样的。

sax是一套api,不是一个解析器,所以这个代码在xml解析器中是通用的。要让示例跑起来,你将需要一个支持sax v2的xml解析器。我用apache的xerces解析器。(见资源)参照你的解析器的getting-started文档来获得调用一个sax解析器的资料。

sax api 的说明书通俗易读。它包含了很多的详细内容。而使用sax api的主要任务就是创建一个实现contenthandler接口,一个供xml 解析器调用以将分析xml文档时所发生的sax事件分发给处理程序的回调接口。

方便起见,sax api也提供了一个已经实现了contenthandler接口的defaulthandler适配器类。

一但实现了contenthandler或者扩展了defaulthandler类,你只需直接将xml解析器解析一个特定的文档即可。

我们的第一个例子扩展defaulthandler将每个sax事件打印到控制台。这将给你一个初步的映象,以说明什么sax事件将会发生及以怎样的顺序发生。

作为开始,以下是将在我们的第一个示例中用到的xml文档样本:

<?xml version="1.0"?>

<simple date="7/7/2000" >

<name> bob </name>

<location> new york </location>

</simple>

代码:

package xmltest;

import javax.xml.parsers.*;

import org.xml.sax.*;

import org.xml.sax.helpers.*;

import java.io.*;

public class saxtest extends defaulthandler {

// 重载defaulthandler类的方法

// 以拦截sax事件通知。

//

// 关于所有有效事件,见org.xml.sax.contenthandler

//

public void startdocument( ) throws saxexception {

system.out.println( "sax event: start document" );

}

public void enddocument( ) throws saxexception {

system.out.println( "sax event: end document" );

}

public void startelement( string namespaceuri,

string localname,

string qname,

attributes attr ) throws saxexception {

system.out.println( "sax event: start element[ " +

localname + " ]" );

// 如果有属性,我们也一并打印出来...

for ( int i = 0; i < attr.getlength(); i++ ){

system.out.println( " attribute: " +

attr.getlocalname(i) +

" value: " +

attr.getvalue(i) );

}

}

public void endelement( string namespaceuri,

string localname,

string qname ) throws saxexception {

system.out.println( "sax event: end element[ " +

localname + " ]" );

}

public void characters( char[] ch, int start, int length )

throws saxexception {

system.out.print( "sax event: characters[ " );

try {

outputstreamwriter outw = new outputstreamwriter(system.out);

outw.write( ch, start,length );

outw.flush();

} catch (exception e) {

e.printstacktrace();

}

system.out.println( " )" );

}

public static void main( string[] argv ){

system.out.println( "example1 sax events:" );

try {

// saxparserfactory spfactory = saxparserfactory.newinstance();

// saxparser sparser = spfactory.newsaxparser();

// 建立sax 2解析器...

xmlreader xr = xmlreaderfactory.createxmlreader("org.apache.xerces.parsers.saxparser");

// 安装contenthandler...

xr.setcontenthandler( new saxtest() );

// 解析文件...

xr.parse( new inputsource(

new filereader( "examplea.xml" )) );

}catch ( exception e ) {

e.printstacktrace();

}

}

}

需下载xml解析器http://xml.apache.org/dist/xerces-j/xerces-j-bin.2.5.0.zip

jdom解析xml:

http://chinaunix.net/forum/viewtopic.php?p=865198#865198

建议下载jdom8得包

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » java的xml编程(sax)-JSP教程,Java与XML
分享到: 更多 (0)

相关推荐

  • 暂无文章