本帖最后由 从黑到白的马 于 2016-1-20 13:46 编辑
很高兴又和大家分享了
[1] 先构建工厂
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
[2] 通过工厂获取sax实例
SAXParser saxParser = saxParserFactory.newSAXParser();
[2.1]准备事件处理器(注意:此处也可以使用匿名内部类:new DefaultHander(){})
- //定义事件的处理器
- class MyDefaultHandler extends DefaultHandler{
-
- // 接收文档开始的通知。
- @Override
- public void startDocument() throws SAXException {
- super.startDocument();
-
- System.out.println("文档开始");
-
- }
-
- // 接收元素开始的通知。
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- super.startElement(uri, localName, qName, attributes);
-
- System.out.println("startElement");
- }
-
- //接收元素中字符(文本)数据的通知
- @Override
- public void characters(char[] ch, int start, int length)
- throws SAXException {
- super.characters(ch, start, length);
- String content = new String(ch, start, length);
- if (content!=null&&content.trim().length()>0) {
-
- System.out.println("characters--文本"+content);
- }
-
-
-
-
- }
-
- //接收元素结束的通知。
- @Override
- public void endElement(String uri, String localName, String qName)
- throws SAXException {
- super.endElement(uri, localName, qName);
- System.out.println("endElement");
- }
-
- //接收文档结束的通知。
- @Override
- public void endDocument() throws SAXException {
- super.endDocument();
-
- System.out.println("文档结束");
- }
-
-
- }
复制代码 [3]开始解析xml
saxParser.parse("bookstore.xml", new MyDefaultHandler());
|
|