• Sax解析Xml


    程序1.

    package WildCat.Xml.Sax;

    import java.io.File;

    import java.util.Stack;

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

    public static void main (String [] args) throws Exception, SAXException

    {

    //创建一个工厂

    SAXParserFactory spf=SAXParserFactory.newInstance();

    //获得解析器

    SAXParser parser=spf.newSAXParser();

    //开始解析

    parser.parse(new File("学生名单.xml"), new MyHandler2());

    }

    }

    class MyHandler2 extends DefaultHandler

    {

    //

    private Stack<String> stack=new Stack<String>();

    private String name;

    private String sax;

    private String age;

    @Override

    public void startElement(String uri, String localName, String qName,

    Attributes attributes) throws SAXException {

    stack.push(qName);

    for (int i=0;i<attributes.getLength();i++)

    {

    //获得属性的名字

    String attrName=attributes.getQName(i);

    //获得属性值

    String attrValue=attributes.getValue(i);

    System.out.println(attrName+"="+attrValue);

    }

    }

    @Override

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

    throws SAXException {

    String tag=stack.peek();

    if ("姓名".equals(tag))

    {

    name=new String(ch,start,length);

    }

    else if ("性别".equals(tag))

    {

    sax=new String(ch,start,length);

    }

    else if ("年龄".equals(tag))

    {

    age=new String(ch,start,length);

    }

    }

    @Override

    public void endElement(String uri, String localName, String qName)

    throws SAXException {

    stack.pop();//结束时把内容弹出

    if ("学生".equals(qName))

    {

    System.out.println("姓名:"+name);

    System.out.println("性别:"+sax);

    System.out.println("年龄:"+age);

    }

    }

    }

    运行结果:

    学号=01

    姓名:张三

    性别:男

    年龄:20

    学号=02

    姓名:李红

    性别:女

    年龄:19

    学号=03

    姓名:李四

    性别:男

    年龄:21

  • 相关阅读:
    前端提示“页面正在载入”的功能实现
    JSON那些事
    如何让nodejs同步操作
    nodejs的一些局限
    《javascript高级程序设计》读书笔记——作用域
    svn教程
    从雷军谈小米中的一些思考
    云Vps安全设置
    不同服务器数据库之间的数据操作
    C#语言的Excel文件导入导出
  • 原文地址:https://www.cnblogs.com/lixingle/p/3313032.html
Copyright © 2020-2023  润新知