2012年5月13日 星期日

[Android] The way to parser xml - SAX

Parser XML 可以用以下 API 達成:
  • SAX
  • Digester


SAX 
  • Simple API for XML。
  • 實作方式:
    • extends DefaultHandler
    • new SAXParserFactory
      • SAXParserFactory sAXParserFactory  =  SAXParserFactory.newInstance();
    • new SAXParser:
      • SAXParser sAXParser = sAXParserFactory.newSAXParser();
    • 從 SAXParser 中得到一個 XMLReader 的實例:
      • XMLReader xMLReader = sAXParser.getXMLReader();
    • Set Handler 到 XMLReader
      • xMLReader.setContentHandler(rssParser);
    • 藉 InputStream 取得 XML,用 handler 進行 parser。
      • xMLReader.parse(is);


DefaultHandler 執行方式:
  • startDocument()
    • 適合建立儲存物的集合 (ex: list)。
  • startElement(String namespaceURI, String localName, String qName, Attributes atts)
    • 解析過程中,遇到 XML 中的 tag 時,此 method 會被呼叫,可以由 localName 得知解析到那個 element 了。
    • 可以適當的建立相對物件。
    • attributes.getValue(NAME)
  • characters(char ch[], int start, int length)
    • 在執行 startElement() 後,此 method 會被呼叫,参数 ch[] 就是 element 中所帶的内容。
  • endElement(String namespaceURI, String localName, String qName)
  • endDocument()


* Reference
- android解析xml文件的方式(其二) - 东子哥 - 博客园
- 使用SAXParser取得XML文件里的属性值 - XML - AJava
- Android RSS解析步骤 | 易网联信
- SAX之:SAXParserFactory与SAXParser - 小文字 - 博客园

沒有留言:

張貼留言