• 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

  • 相关阅读:
    金融法规
    大型网站架构演化
    用一张决策图来重新思考你的网站
    互联网产品的一般商业模式
    怎样开始冥想
    创造安宁舒适工作日的17个办法
    人生规划和GTD——"知"、"得"与"合"
    立即行动的七个方法
    文件归档的学问
    入门GTD时间管理系统必读
  • 原文地址:https://www.cnblogs.com/lixingle/p/3313032.html
Copyright © 2020-2023  润新知