SAX操作XML

来源:互联网 发布:linux多线程如何实现 编辑:程序博客网 时间:2024/06/16 08:34

XML文件代码如下:

<?xml version="1.0" encoding="UTF-8"?><person>    <p1>        <name>zhangsan</name>        <age>23</age>    </p1>    <p2>        <name>lisi</name>        <age>20</age>    </p2></person>

SAX操作代码:

package cn.itcast.sax;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class Textsax {    /**     * @param args     * @throws Exception      * @throws SAXException      */    public static void main(String[] args) throws SAXException, Exception {        SAXParserFactory parserFactory = SAXParserFactory.newInstance();        SAXParser saxParser = parserFactory.newSAXParser();        saxParser.parse("src/p.xml", new myDefault1());    }}class myDefault1 extends DefaultHandler{    boolean flag = false;    int index=1;    @Override    public void startElement(String uri, String localName, String qName,            Attributes attributes) throws SAXException {        //System.out.print("<"+qName+">");        if ("name".equals(qName))        {            flag=true;        }    }    @Override    public void characters(char[] ch, int start, int length)            throws SAXException {        //System.out.print(new String(ch,start,length));        if (flag==true&&index == 1)        {            System.out.println(new String(ch,start,length));        }    }    @Override    public void endElement(String uri, String localName, String qName)            throws SAXException {        //System.out.print("</"+qName+">");        if("name".equals(qName))        {            flag = false;            index++;        }    }}
0 0
原创粉丝点击