testsax.java

来自「java解析xml的例子」· Java 代码 · 共 168 行

JAVA
168
字号
package xmlexample;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

import org.xml.sax.Locator;

import org.xml.sax.ContentHandler;

import org.xml.sax.InputSource;

import org.xml.sax.helpers.DefaultHandler;

import java.io.IOException;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

class TestSAX extends DefaultHandler

{

private StringBuffer buf;

public TestSAX()

{

super(); 

}

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 startPrefixMapping( String prefix, String uri ) 

{

System.out.println(" 前缀映射: " + prefix +" 开始!"+ " 它的URI是:" + uri);

}

public void endPrefixMapping( String prefix )

{

System.out.println(" 前缀映射: "+prefix+" 结束!");

}

public void processingInstruction( String target, String instruction )

throws SAXException

{

}

public void ignorableWhitespace( char[] chars, int start, int length ) throws SAXException 

{

}

public void skippedEntity( String name ) throws SAXException 

{

}

public void startElement(String namespaceURI,String localName,String qName,Attributes atts) 

{

System.out.println("*******开始解析元素*******");

System.out.println("元素名"+qName); 

for(int i=0;i<atts.getLength();i++)

{

System.out.println("元素名"+atts.getLocalName(i)+"属性值"+atts.getValue(i));

}

}

public void endElement(String namespaceURI,String localName,String fullName )throws SAXException

{

System.out.println("******元素解析结束********");

}

public void characters( char[] chars, int start, int length )throws SAXException

{

//将元素内容累加到StringBuffer中 

buf.append(chars,start,length);

}

public static void main(String args[])

{

try{

SAXParserFactory sf = SAXParserFactory.newInstance();

SAXParser sp = sf.newSAXParser();

TestSAX testsax=new TestSAX();

sp.parse(new InputSource("D:\test\test.xml"),testsax);

}catch(IOException e)

{

e.printStackTrace(); 

}catch(SAXException e)

{

e.printStackTrace(); 

}catch(Exception e)

{

e.printStackTrace(); 

}

}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?