XML文件

<?xml version="1.0" encoding="UTF-8"?><bookstore><book id="1"><name>冰与火之歌</name><author>乔治马丁</author><year>2014</year><price>89</price></book><book id="2"><name>安徒生童话</name><year>2004</year><price>77</price><language>English</language></book></bookstore>

handler.java类

package xmltes;import javax.xml.stream.events.Characters;import javax.xml.stream.events.StartElement;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class handler extends DefaultHandler{    private static int bookNum = 0;    //遍历xml文件的开始标签    @Override    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {        // 调用DefaultHandler父类的startElement方法        super.startElement(uri, localName, qName, attributes);                //判断是不是有属性的标签/如book        if(qName.equals("book")){            bookNum++;            System.out.println("====================开始遍历第"+bookNum+"书的内容================");            //开始解析book元素            //已知book元素下属性的名称,可以根据名称判断           /* String value = attributes.getValue("id");            System.out.println("book的属性值是" + value);*/            //如果不知道数的属性名称            int num = attributes.getLength();                        for(int i=0;i<num;i++){                System.out.println("书的第" + (i+1) + "个属性名是:"+attributes.getQName(i)+"===属性值是:" + attributes.getValue(i));            }                    }else if(!qName.equals("book") && !qName.equals("bookstore") ){            System.out.println("节点名是:" + qName);        }                                    }    //遍历xml文件的结束标签    @Override    public void endElement(String uri, String localName, String qName) throws SAXException {        // TODO Auto-generated method stub        super.endElement(uri, localName, qName);        //判断这本书是否遍历结束        if(qName.equals("book")){            System.out.println("====================结束遍历第"+bookNum+"书的内容================");        }    }        @Override    public void characters(char[] ch, int start, int length) throws SAXException {        // TODO Auto-generated method stub        super.characters(ch, start, length);        String value = new String(ch, start, length);        if(!value.trim().equals("")){            System.out.println(value);        }    }        //用来标识解析开始    @Override    public void startDocument() throws SAXException {        // TODO Auto-generated method stub        super.startDocument();//        System.out.println("进入标识解析开始方法");    }        //用来标识解析结束    @Override    public void endDocument() throws SAXException {        // TODO Auto-generated method stub        super.endDocument();//        System.out.println("进入标识解析结束方法");    }    }

Test类

package xmltes;import java.io.IOException;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.SAXException;public class SAXTest {    public static void main(String[] args) {        try {            //获取一个SAXParserFactory的实例            SAXParserFactory factory = SAXParserFactory.newInstance();            //通过factory获取SAXParser实例            SAXParser parser = factory.newSAXParser();            //创建一个SAXParserHandler对象            handler handler = new handler();            parser.parse("001.xml", handler);        } catch (ParserConfigurationException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (SAXException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

更多相关文章

  1. 简单介绍XML Schema中的elementFormDefault属性
  2. Xml之Linq如何遍历存储的数据
  3. jscript和vbscript对XML元素属性进行操作的方法
  4. 分享一个jscript与vbscript操作XML元素属性的方法
  5. 内容和属性用法的相关文章推荐
  6. 一道简单的数组遍历题,加上四个条件后感觉无从下手
  7. 数据结构与算法: 三十张图弄懂「图的两种遍历方式」
  8. 图解LeetCode第 103 号问题:二叉树的锯齿形层次遍历
  9. 【图解数据结构】 一组动画彻底理解二叉树遍历

随机推荐

  1. android imageButton 透明图片
  2. Android本地视频播放器开发--视频解码
  3. 学习01:Android 4.0_你必须知道的13点
  4. Android之输入银行卡号判断属于哪个银行
  5. Android app项目和开发总结
  6. 简单实现跑马灯
  7. Android 中文 API (16) —— AnalogClock
  8. RelativeLayout 相对布局属性
  9. android实现密码框右侧显示小眼睛
  10. 【整理】Android中EditText中的InputType