SAX解析xml

//获取SAX解析器工厂
SAXParserFactory sf = SAXParserFactory.newInstance();
//获取SAX解析器
SAXParser sp = sf.newSAXParser();
//从解析器中得到reader对象
XMLReader reader = sp.getXMLReader();
//设置内容处理器
reader.setContentHandler(new XMLContentHandler()); //括号内要引入下面的类
//需要读取的xml文件路径
reader.parse(path:" ");

class XMLContentHandler implements ContentHandler{ //会override很多方法,只需要其中几种方法。

//开始读取xml文档
@Override
public void startDocument() throws SAXException {
System.out.println("开始读取xml文档");
}

//结束读取xml文档
@Override
public void endDocument() throws SAXException {
System.out.println("结束读取xml文档");
}

//开始读取节点
@Override
public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
System.out.print("<" + qName); //拼接标签的开头

    for(int i = 0; i < atts.getLength(); i++){ //遍历标签的所有属性

        System.out.print(" " + atts.getQName(i) + "=\"" + atts.getValue(i) + "\"" ); //  \"为转译双引号
    }
    System.out.println(">"); //输出结尾
}

//结束读取节点
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {

}

//得到标签之间的字符串
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
System.out.println(new String(ch,start,length)); //输出标签之间的字符串,使用的是new String(对象,开始位置,结束位置) 。
}

posted @ 2024-04-22 17:18  啧啧z  阅读(2)  评论(0编辑  收藏  举报