新聞中心
新的 SAX 解析代碼并未使用 SAX 處理程序,而是使用了 SDK 中的 android.sax 包中的類。這些類允許您構建 XML 文檔的結構,并根據(jù)需要添加事件監(jiān)聽程序。在以上代碼中,您聲明文檔將有一個 de >rssde > 根元素,并且它有一個 de >channelde > 子元素。然后,您聲明 de >channelde > 將有一個 de >ITEMde > 子元素,并且開始添加監(jiān)聽程序。對于每個監(jiān)聽程序,您都使用了一個實現(xiàn)了特定接口(de >EndElementListnerde > 或 de >EndTextElementListenerde >)的匿名內(nèi)部類。注意,您不需要跟蹤字符數(shù)據(jù)。不僅僅因為這樣會更加簡單,更重要的是更加高效。***,在調(diào)用 Xml.parse 實用方法時,您將傳遞一個通過根元素生成的處理程序。

公司主營業(yè)務:成都網(wǎng)站制作、成都網(wǎng)站設計、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出呂梁免費做網(wǎng)站回饋大家。
所有代碼都是可選的。如果您習慣 Java 環(huán)境中的標準 SAX 解析代碼,那么您可以堅持使用它。如果您希望嘗試 android sdk 所提供的便捷的包裝器,那么也可以使用它。如果您完全不希望使用 SAX 會怎樣呢?可以使用一些備選方案。其中的***方法就是 DOM。
Android 完全支持 DOM 解析,就像在桌面機器或服務器上使用 Java 代碼運行它一樣。顯示了一個基于 DOM 的解析器接口實現(xiàn)。
基于 DOM 的提要解析器實現(xiàn)
java代碼:
- public class DomFeedParser extends BaseFeedParser {
- protected DomFeedParser(String feedUrl) {
- super(feedUrl);
- }
- public List< Message > parse() {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- List< Message > messages = new ArrayList< Message >();
- try {
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document dom = builder.parse(this.getInputStream());
- Element root = dom.getDocumentElement();
- NodeList items = root.getElementsByTagName(ITEM);
- for (int i=0;i< items.getLength();i++){
- Message message = new Message();
- Node item = items.item(i);
- NodeList properties = item.getChildNodes();
- for (int j=0;j< properties.getLength();j++){
- Node property = properties.item(j);
- String name = property.getNodeName();
- if (name.equalsIgnoreCase(TITLE)){
- message.setTitle(property.getFirstChild().getNodeValue());
- } else if (name.equalsIgnoreCase(LINK)){
- message.setLink(property.getFirstChild().getNodeValue());
- } else if (name.equalsIgnoreCase(DESCRIPTION)){
- StringBuilder text = new StringBuilder();
- NodeList chars = property.getChildNodes();
- for (int k=0;k< chars.getLength();k++){
- text.append(chars.item(k).getNodeValue());
- }
- message.setDescription(text.toString());
- } else if (name.equalsIgnoreCase(PUB_DATE)){
- message.setDate(property.getFirstChild().getNodeValue());
- }
- }
- messages.add(message);
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- return messages;
- }
- }
標題名稱:Androidxml讀寫(六)
網(wǎng)頁鏈接:http://m.fisionsoft.com.cn/article/cdeeojg.html


咨詢
建站咨詢
