服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

使用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();
    }
  }
}

扫描关注微信公众号