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

  • 相关阅读:
    CnSharp代码生成器。
    C#后台调用前台javascript的五种方法
    winfrom如何做一个语法着色控件
    Delphi AdvStringGrid表格保存和TClientDataSet发生关系的构想。
    Oracle 修改数据库字段的类型的语句
    structs 标签库(html)(转帖)
    Android Unable to resolve target 'android8'
    Android SDL_app: emulatorarm.exe 应用程序错误
    如何MyEclipse中显示WEBINF文件夹下的classes目录以及目录中的class文件
    Android conversion to dalvik format failed with error 1的解决办法
  • 原文地址:https://www.cnblogs.com/yuan-yuan/p/4785552.html
Copyright © 2011-2022 走看看