sax解析xml
来源:百度文库 编辑:神马文学网 时间:2024/05/11 20:59:37
import java.io.IOException;import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class ParseXml extends DefaultHandler{ private StringBuffer buffer;
private String str;
public ParseXml(){
super();
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
//将元素内容累加到StringBuffer中
buffer.append(ch,start,length);
}
@Override
public void startDocument() throws SAXException {
buffer = new StringBuffer();
System.out.println("********开始解析文档************");
} @Override
public void endDocument() throws SAXException {
System.out.println("**********解析文档结束***********");
} @Override
public void startPrefixMapping(String prefix, String uri)
throws SAXException {
System.out.println("前缀映射"+prefix+" uri "+uri);
}
@Override
public void endPrefixMapping(String prefix) throws SAXException {
System.out.println("后缀映射"+prefix);
}
@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
System.out.println("******开始解析元素*******");
System.out.println("元素名"+name);
for (int i = 0; i < attributes.getLength(); i++) {
System.out.println("元素名"+attributes.getLocalName(i)+" 属性值"+attributes.getValue(i));
}
} @Override
public void endElement(String uri, String localName, String name)
throws SAXException {
str = buffer.toString();
System.out.println("buffer="+buffer+" ||length="+buffer.length());
buffer.delete(0, buffer.length());
System.out.println("*******"+localName+"元素解析结束"+localName+"***********"+name);
}
public static void main(String[] args) {
try{
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
ParseXml testsax=new ParseXml();
sp.parse(new InputSource("s.xml"),testsax);
}catch(IOException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
}
import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class ParseXml extends DefaultHandler{ private StringBuffer buffer;
private String str;
public ParseXml(){
super();
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
//将元素内容累加到StringBuffer中
buffer.append(ch,start,length);
}
@Override
public void startDocument() throws SAXException {
buffer = new StringBuffer();
System.out.println("********开始解析文档************");
} @Override
public void endDocument() throws SAXException {
System.out.println("**********解析文档结束***********");
} @Override
public void startPrefixMapping(String prefix, String uri)
throws SAXException {
System.out.println("前缀映射"+prefix+" uri "+uri);
}
@Override
public void endPrefixMapping(String prefix) throws SAXException {
System.out.println("后缀映射"+prefix);
}
@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
System.out.println("******开始解析元素*******");
System.out.println("元素名"+name);
for (int i = 0; i < attributes.getLength(); i++) {
System.out.println("元素名"+attributes.getLocalName(i)+" 属性值"+attributes.getValue(i));
}
} @Override
public void endElement(String uri, String localName, String name)
throws SAXException {
str = buffer.toString();
System.out.println("buffer="+buffer+" ||length="+buffer.length());
buffer.delete(0, buffer.length());
System.out.println("*******"+localName+"元素解析结束"+localName+"***********"+name);
}
public static void main(String[] args) {
try{
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
ParseXml testsax=new ParseXml();
sp.parse(new InputSource("s.xml"),testsax);
}catch(IOException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
}