环境:JDK1.4
下载了Xerces-J-bin.2.6.2.zip,解压安装后修改CLASSPATH=E:\Xerces-J-bin.2.6.2\xerces-2_6_2\xercesImpl.jar;E:\Xerces-J-bin.2.6.2\xerces-2_6_2\resolver.jar;E:\Xerces-J-bin.2.6.2\xerces-2_6_2\xml-apis.jar;E:\Xerces-J-bin.2.6.2\xerces-2_6_2\xmlParserAPIs.jar程序1.javapackage test;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import java.io.IOException;
public class MySAXApp { public static void main(String[] args) {
if ( args.length != 1 ) {
System.out.println("输入: java MySAXApp ");
System.exit(0);
} try {
// 初始化reader
XMLReader reader = XMLReaderFactory.createXMLReader
("org.apache.xerces.parsers.SAXParser") ; // 创建ContentHandler的实例
ContentHandler contentHandler = new MyContentHandler(); // 在reader中注册实例化的ContentHandler
reader.setContentHandler( contentHandler ); // 开始解析文档
reader.parse(args[0]); }
catch ( IOException e ) {
System.out.println("读入文档时错: " + e.getMessage());
}
catch ( SAXException e ) {
System.out.println("解析文档时错: " + e.getMessage());
}
}
}程序2.javapackage test;
import org.xml.sax.*;
import org.xml.sax.helpers.*;public class MyContentHandler implements ContentHandler { private StringBuffer buf; //设置一个可以定位文档内容事件发生位置的定位器对象
public void setDocumentLocator( Locator locator ) {
} //用于处理文档解析开始事件
public void startDocument() throws SAXException {
buf=new StringBuffer();
System.out.println("*******开始解析文档*******");
} //用于处理文档解析结束事件
public void endDocument() throws SAXException {
System.out.println("*******解析文档结束*******");
} //处理解析中产生的处理指令事件
public void processingInstruction( String target, String instruction )
throws SAXException {
} //用于处理前缀映射开始事件,从参数中可以得到前缀名称以及所指向的uri
public void startPrefixMapping( String prefix, String uri ) {
System.out.println("\n前缀映射: " + prefix +" 开始!"+ " 它的URI是:" + uri);
} //用于处理前缀映射结束事件,从参数中可以得到前缀名称
public void endPrefixMapping( String prefix ) {
System.out.println("\n前缀映射: "+prefix+" 结束!");
} //处理元素开始事件,从参数中可以获得元素所在名称空间的uri,元素名称,属性列表等信息
public void startElement( String namespaceURI, String localName,
String fullName, Attributes attributes )
throws SAXException {
System.out.println("\n 元素: " + "["+fullName+"]" +" 开始解析!");
// 打印出属性信息
for ( int i = 0; i < attributes.getLength(); i++ ) {
System.out.println("\t属性名称:" + attributes.getLocalName(i)
+ " 属性值:" + attributes.getValue(i));
}
} //处理元素结束事件,从参数中可以获得元素所在名称空间的uri,元素名称等信息
public void endElement( String namespaceURI, String localName,
String fullName )
throws SAXException {
//打印出非空的元素内容并将StringBuffer清空
String nullStr="";
if (!buf.toString().trim().equals(nullStr)){
System.out.println("\t内容是: " + buf.toString().trim());
}
buf.setLength(0);
//打印元素解析结束信息
System.out.println("元素: "+"["+fullName+"]"+" 解析结束!");
} //处理元素的字符内容,从参数中可以获得内容
public void characters( char[] chars, int start, int length )
throws SAXException {
//将元素内容累加到StringBuffer中
buf.append(chars,start,length);
} //处理元素的可忽略空格
public void ignorableWhitespace( char[] chars, int start, int length )
throws SAXException {
} //
public void skippedEntity( String name ) throws SAXException {
}
}
xml文件:<?xml version="1.0" encoding="GB2312"?>
<我的书架 >
<技术书籍>
<图书>
<书名>JAVA 2编程详解</书名>
<价格 货币单位="人民币">150</价格>
<购买日期>2000,1,24</购买日期>
</图书>
</技术书籍>
<book:文学书籍 xmlns:book="http://javausr.com"/>
<历史书籍/>
</我的书架>运行后出错:解析文档时错: SAX2 driver class org.apache.xerces.parsers.SAXParser not found这是怎么问题请大家帮忙看看是否是xerces2配置不对??还是其他原因??
下载了Xerces-J-bin.2.6.2.zip,解压安装后修改CLASSPATH=E:\Xerces-J-bin.2.6.2\xerces-2_6_2\xercesImpl.jar;E:\Xerces-J-bin.2.6.2\xerces-2_6_2\resolver.jar;E:\Xerces-J-bin.2.6.2\xerces-2_6_2\xml-apis.jar;E:\Xerces-J-bin.2.6.2\xerces-2_6_2\xmlParserAPIs.jar程序1.javapackage test;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import java.io.IOException;
public class MySAXApp { public static void main(String[] args) {
if ( args.length != 1 ) {
System.out.println("输入: java MySAXApp ");
System.exit(0);
} try {
// 初始化reader
XMLReader reader = XMLReaderFactory.createXMLReader
("org.apache.xerces.parsers.SAXParser") ; // 创建ContentHandler的实例
ContentHandler contentHandler = new MyContentHandler(); // 在reader中注册实例化的ContentHandler
reader.setContentHandler( contentHandler ); // 开始解析文档
reader.parse(args[0]); }
catch ( IOException e ) {
System.out.println("读入文档时错: " + e.getMessage());
}
catch ( SAXException e ) {
System.out.println("解析文档时错: " + e.getMessage());
}
}
}程序2.javapackage test;
import org.xml.sax.*;
import org.xml.sax.helpers.*;public class MyContentHandler implements ContentHandler { private StringBuffer buf; //设置一个可以定位文档内容事件发生位置的定位器对象
public void setDocumentLocator( Locator locator ) {
} //用于处理文档解析开始事件
public void startDocument() throws SAXException {
buf=new StringBuffer();
System.out.println("*******开始解析文档*******");
} //用于处理文档解析结束事件
public void endDocument() throws SAXException {
System.out.println("*******解析文档结束*******");
} //处理解析中产生的处理指令事件
public void processingInstruction( String target, String instruction )
throws SAXException {
} //用于处理前缀映射开始事件,从参数中可以得到前缀名称以及所指向的uri
public void startPrefixMapping( String prefix, String uri ) {
System.out.println("\n前缀映射: " + prefix +" 开始!"+ " 它的URI是:" + uri);
} //用于处理前缀映射结束事件,从参数中可以得到前缀名称
public void endPrefixMapping( String prefix ) {
System.out.println("\n前缀映射: "+prefix+" 结束!");
} //处理元素开始事件,从参数中可以获得元素所在名称空间的uri,元素名称,属性列表等信息
public void startElement( String namespaceURI, String localName,
String fullName, Attributes attributes )
throws SAXException {
System.out.println("\n 元素: " + "["+fullName+"]" +" 开始解析!");
// 打印出属性信息
for ( int i = 0; i < attributes.getLength(); i++ ) {
System.out.println("\t属性名称:" + attributes.getLocalName(i)
+ " 属性值:" + attributes.getValue(i));
}
} //处理元素结束事件,从参数中可以获得元素所在名称空间的uri,元素名称等信息
public void endElement( String namespaceURI, String localName,
String fullName )
throws SAXException {
//打印出非空的元素内容并将StringBuffer清空
String nullStr="";
if (!buf.toString().trim().equals(nullStr)){
System.out.println("\t内容是: " + buf.toString().trim());
}
buf.setLength(0);
//打印元素解析结束信息
System.out.println("元素: "+"["+fullName+"]"+" 解析结束!");
} //处理元素的字符内容,从参数中可以获得内容
public void characters( char[] chars, int start, int length )
throws SAXException {
//将元素内容累加到StringBuffer中
buf.append(chars,start,length);
} //处理元素的可忽略空格
public void ignorableWhitespace( char[] chars, int start, int length )
throws SAXException {
} //
public void skippedEntity( String name ) throws SAXException {
}
}
xml文件:<?xml version="1.0" encoding="GB2312"?>
<我的书架 >
<技术书籍>
<图书>
<书名>JAVA 2编程详解</书名>
<价格 货币单位="人民币">150</价格>
<购买日期>2000,1,24</购买日期>
</图书>
</技术书籍>
<book:文学书籍 xmlns:book="http://javausr.com"/>
<历史书籍/>
</我的书架>运行后出错:解析文档时错: SAX2 driver class org.apache.xerces.parsers.SAXParser not found这是怎么问题请大家帮忙看看是否是xerces2配置不对??还是其他原因??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货