XML----SAX解析XML文件
来源:互联网 发布:银联数据服务有限公司 编辑:程序博客网 时间:2024/04/26 00:15
- import java.io.File;
- import java.io.IOException;
-
- import javax.xml.parsers.ParserConfigurationException;
- import javax.xml.parsers.SAXParser;
- import javax.xml.parsers.SAXParserFactory;
-
- import org.junit.Test;
- import org.xml.sax.Attributes;
- import org.xml.sax.SAXException;
- import org.xml.sax.helpers.DefaultHandler;
-
- public class SaxTest {
-
- @Test
- public void test() throws ParserConfigurationException, SAXException,
- IOException {
-
-
- SAXParserFactory spf = SAXParserFactory.newInstance();
-
- SAXParser sp = spf.newSAXParser();
-
-
- sp.parse(new File("src//sax//sida.xml"), new MyDefaultHandler());
-
- }
-
-
- class MyDefaultHandler extends DefaultHandler {
-
- boolean flag = false;
-
- @Override
-
- public void startDocument() throws SAXException {
-
- super.startDocument();
- System.out.println("startDocument");
- }
-
- @Override
- /*
-
-
-
- */
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
-
- super.startElement(uri, localName, qName, attributes);
-
-
- if ("作者".equals(qName)) {
- flag = true;
- System.out.println("startElement");
- }
- }
-
- @Override
-
- public void characters(char[] ch, int start, int length)
- throws SAXException {
-
- super.characters(ch, start, length);
-
- if (flag) {
-
- System.out.println(new String(ch, start, length));
- }
-
- }
-
- @Override
-
- public void endElement(String uri, String localName, String qName)
- throws SAXException {
-
- super.endElement(uri, localName, qName);
-
- if ("作者".equals(qName)) {
- System.out.println("endElement");
-
- flag = false;
- }
- }
-
- @Override
-
- public void endDocument() throws SAXException {
-
- super.endDocument();
-
- System.out.println("endDocument");
- }
- }
-
- }
XML文件- <!DOCTYPE 四大名著[
- <!ELEMENT 四大名著 (西游记,红楼梦)>
- <!ATTLIST 西游记 id ID #IMPLIED>
- ]>
- <四大名著>
- <西游记 id="x001">
- <作者>吴承恩</作者>
- </西游记>
- <红楼梦 id="x002">
- <作者>曹雪芹</作者>
- </红楼梦>
- </四大名著>