sax解析
2.xml
<?xml version="1.0" encoding="GBK" standalone="no" ?>
<addresslist>
<linkman>
<name id="001">W_Jp</name>
<email>271953489@qq.com</email>
</linkman>
<linkman>
<name id="002">W_Cc</name>
<email>109604484@qq.com</email>
</linkman>
<linkman>
<name id="003">C_Jm</name>
<email>879451036@qq.com</email>
</linkman>
</addresslist>
demo.java
import org.xml.sax.* ;
import org.xml.sax.helpers.* ;
public class demo extends DefaultHandler{
public void startDocument()
throws SAXException{
System.out.println("<?xml version=\"1.0\" encoding=\"GBK\" ?>") ;
}
public void startElement(String uri,
String localName,
String qName,
Attributes attributes)
throws SAXException{
System.out.print("<") ;
System.out.print(qName) ;
if(attributes != null){ // 如果存在属性
for(int i=0; i<attributes.getLength(); i++){
System.out.print(" " + attributes.getQName(i) + "=\"" + attributes.getValue(i) + "\"" ) ;
}
}
System.out.print(">") ;
}
public void endElement(String uri,
String localName,
String qName)
throws SAXException{
System.out.print("<") ;
System.out.print(qName) ;
System.out.print(">") ;
}
public void endDocument()
throws SAXException{
System.out.print("文档结束...") ;
}
public void characters(char[] ch,
int start,
int length)
throws SAXException{
System.out.println(new String(ch, start, length)) ;
}
}
TestSax.java
import java.io.* ;
import javax.xml.parsers.* ;
public class TestSax {
public static void main(String args []) throws Exception{
// 建立SAX的解析工厂
SAXParserFactory factory = SAXParserFactory.newInstance() ;
SAXParser parser = factory.newSAXParser() ;
parser.parse("e:" + File.separator + "02.xml", new demo()) ;
}
}