zoukankan      html  css  js  c++  java
  • Android之SAX解析笔记

    books.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <books>
        <book id="12" code="a">
            <name>thinking in java</name>
            <price>85.5</price>
        </book>
        <book id="15" code="b">
            <name>Spring in Action</name>
            <price>39.0</price>
        </book>
    </books>
    View Code

    MyContentHandler.java:

    package com.example.xmlparse;
    
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
    
    public class MyContentHandler extends DefaultHandler {
        private String name;
        private String price;
        private String tagName;
        
        @Override
        public void startDocument() throws SAXException {
            // TODO Auto-generated method stub
            System.out.println(".............startDocument.............");
        }
    
        @Override
        public void endDocument() throws SAXException {
            // TODO Auto-generated method stub
            System.out.println(".............endDocument.............");
        }
    
        @Override
        public void startElement(String uri, String localName, String qName,
                Attributes attributes) throws SAXException {
            // TODO Auto-generated method stub
            System.out.println(".............startElement.............");
            tagName = localName;
            if(localName.equals("book")) {
                // 获取标签的全部属性
                for(int i=0; i<attributes.getLength(); i++) {
                    System.out.println(attributes.getLocalName(i) + " = " + attributes.getValue(i));
                }
            }
        }
    
        @Override
        public void endElement(String uri, String localName, String qName)
                throws SAXException {
            // TODO Auto-generated method stub
            System.out.println(".............endElement.............");
            tagName = "";
            if(localName.equals("book")) {
                this.printout();
            }
        }
    
        @Override
        public void characters(char[] ch, int start, int length)
                throws SAXException {
            // TODO Auto-generated method stub
            System.out.println(".............characters.............");
            System.out.println(tagName);
            if(tagName.equals("name")) {
                name = new String(ch, start, length);
            }else if(tagName.equals("price")) {
                price = new String(ch, start, length);
            }
        }
        
        private void printout() {
            System.out.println("name:" + name);
            System.out.println("price:" + price);
        }
    }
    View Code

    执行代码结果:

    .............startDocument.............
    .............startElement.............
    .............characters.............
    books
    .............characters.............
    books
    .............startElement.............
    id = 12
    code = a
    .............characters.............
    book
    .............characters.............
    book
    .............startElement.............
    .............characters.............
    name
    .............endElement.............
    .............characters.............
    .............characters.............
    .............startElement.............
    .............characters.............
    price
    .............endElement.............
    .............characters.............
    .............characters.............
    .............endElement.............
    name:thinking in java
    price:85.5
    .............characters.............
    .............characters.............
    .............startElement.............
    id = 15
    code = b
    .............characters.............
    book
    .............characters.............
    book
    .............startElement.............
    .............characters.............
    name
    .............endElement.............
    .............characters.............
    .............characters.............
    .............startElement.............
    .............characters.............
    price
    .............endElement.............
    .............characters.............
    .............characters.............
    .............endElement.............
    name:Spring in Action
    price:39.0
    .............characters.............
    .............endElement.............
    .............endDocument.............
    View Code

    注意:

    XML报文中行尾的 跟行首的 都会调用characters

  • 相关阅读:
    【1】排行榜算法设计
    基础问答【二】
    基础问答【一】
    【1】c语言
    (五)帧同步与状态同步
    (四)c++虚函数详解
    (三)git pull报错解决方案,Your local changes to the following files would be overwritten by merge
    (二)干货!获取该目录下,指定权限不为770的文件, 并设置权限为770
    【8】java新特性,双冒号 :: 的使用场景
    go(01) 基础语法
  • 原文地址:https://www.cnblogs.com/yuan-yuan/p/4785552.html
Copyright © 2011-2022 走看看