Kxgx.com - 移动开发网

本站快讯:
搜索: 您的位置主页>参考源码>软件源码>>阅读源码:使用SAX解析XML文件

使用SAX解析XML文件

2006-02-21   来源:   作者:未知   【 】 评论:0条

本例介绍了如何使用SAX来解析XML文件

/*
<PHONEBOOK>

<PERSON>
 <NAME>Joe Yin</NAME>
 <EMAIL>joe@yourserver.com</EMAIL>
 <TELEPHONE>202-999-9999</TELEPHONE>
 <WEB>www.java2s.com</WEB>
</PERSON>
<PERSON>
 <NAME>Karol</name>
 <EMAIL>karol@yourserver.com</EMAIL>
 <TELEPHONE>306-999-9999</TELEPHONE>
 <WEB>www.java2s.com</WEB>
</PERSON>
<PERSON>
 <NAME>Green</NAME>
 <EMAIL>green@yourserver.com</EMAIL>
 <TELEPHONE>202-414-9999</TELEPHONE>
 <WEB>www.java2s.com</WEB>
</PERSON>
</PHONEBOOK>

*/

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 NameLister {

  public static void main(String args[]) {

    if (args.length != 1) {
      System.err.println("Usage: java NameLister xmlfile.xml");
      System.exit(-1);
    }

    try {

      SAXParserFactory factory = SAXParserFactory.newInstance();
      SAXParser saxParser = factory.newSAXParser();

      DefaultHandler handler = new DefaultHandler() {


        boolean name = false;

        public void startElement(String uri, String localName,
            String qName, Attributes attributes)
            throws SAXException {
          if (qName.equalsIgnoreCase("NAME")) {


            name = true;
          }
        }

        public void characters(char ch[]int start, int length)


            throws SAXException {
          if (name) {
            System.out.println("Name: "
                new String(ch, start, length));

            name = false;
          }
        }
      };

      saxParser.parse(args[0], handler);

    catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Tags:  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册)密码:匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 帮助