到底要怎么样配置java才可以解析xml文件?
我用了j2sdk,j2ee,jdom,IBM XML4j,配置如下:
[CLASS_PATH]D:\j2sdk\bin;D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar;D:\j2ee\lib\j2ee.jar;D:\jdom\build\jdom.jar;D:\jdom\lib\xerces.jar;D:\xml4j\xercesImpl.jar;D:\xml4j\xmlParserAPIs.jar
[JAVA_HOME] D:\j2sdk
[J2EE_HOME] D:\j2ee
[JAVA_XML_PACK_HOME] D:\java_xml_pack
[JAXM_HOME] D:\java_xml_pack\jaxm
[JAXP_HOME] D:\java_xml_pack\jaxp
[JAXR_HOME] D:\java_xml_pack\jaxr
[JAXRPC_HOME] D:\java_xml_pack\jaxrpc
[PATH] D:\j2sdk\bin;D:\j2ee\bin
运行下面这个示例时解析不了xml文件,系统提示:
Example1 SAX Event:
org.xml.sax.SAXException:System property org.xml.sax.driver not specified
at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReadyFactory.java:90)
at Example1.main(Example1.java:68)
代码:
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;
public class Example1 extends DefaultHandler {
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[ " + ch + " ]");
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 {
XMLReader xr = XMLReaderFactory.createXMLReader();
xr.setContentHandler( new Example1() );
xr.parse( new InputSource(
new FileReader( "Example1.xml" )) );
}catch ( Exception e ) {
e.printStackTrace();
}
}
}