且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何使用Java和SAX解析我的简单XML文件?

更新时间:2022-06-06 02:00:02

下面是一个可行的示例,尽管我建议您改用StAX,但您会发现SAX不太方便

Here is a working example to start with, though I suggest you to use StAX instead, you will see that SAX is not very convenient

import java.io.File;
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 SAX2 {

    public static void main(String[] args) throws Exception {
        SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
        parser.parse(new File("test.xml"), new DefaultHandler() {

            @Override
            public void startElement(String uri, String localName,
                    String qName, Attributes atts) throws SAXException {
                if (qName.equals("passenger")) {
                    System.out.println("id = " + atts.getValue(0));
                }
            }

            @Override
            public void endElement(String uri, String localName, String qName)
                    throws SAXException {
            }

            @Override
            public void characters(char[] ch, int start, int length)
                    throws SAXException {
                String text = new String(ch, start, length);
                if (!text.trim().isEmpty()) {
                    System.out.println("name " + text);
                }
            }
        });
    }
}

输出

id = 001
name Tom Cruise
id = 002
name Tom Hanks