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

  • 相关阅读:
    win10 redis安装教程
    tomcat 最大并发连接数设置
    LeetCode 82 ——删除排序链表中的重复元素 II
    LeetCode 83 —— 删除排序链表中的重复元素
    LeetCode 61——旋转链表
    LeetCode 24——两两交换链表中的节点
    C++ 学习笔记之——文件操作和文件流
    LeetCode 4——两个排序数组中的中位数
    z 变换
    冲激串采样
  • 原文地址:https://www.cnblogs.com/yuan-yuan/p/4785552.html
Copyright © 2011-2022 走看看