- 浏览: 391606 次
- 性别:
- 来自: 北京
最新评论
-
wdhui128:
楼主牛逼
curl使用方法 -
taa199:
哇 curl实在是太强了
curl使用方法 -
nop:
3Q~ 解决了!
freemind中文方框解决 -
lijunjie:
zwwspace 写道这个方法好像搞不定啊怎么搞不定我就是这样 ...
使用webview.copyBackForwardList()来进行判断是否是在当前页打开的链接 -
zwwspace:
这个方法好像搞不定啊
使用webview.copyBackForwardList()来进行判断是否是在当前页打开的链接
android 解析xml
1.使用SAXParser
handle片段
实现startDocument,endDocument,startElement,endElement四个方法
开始文档初始化数组,开始元素时初始化元素,完成元素时,把内容添加元素对象中,再把元素对象添加到对象数组中
最后返回对象数组
2.使用XmlPullParser来解析rss
1.使用SAXParser
try { URL url = new URL(urlToRssFeed); // create the factory SAXParserFactory factory = SAXParserFactory.newInstance(); // create a parser SAXParser parser = factory.newSAXParser(); // create the reader (scanner) XMLReader xmlreader = parser.getXMLReader(); // instantiate our handler RSSHandler theRssHandler = new RSSHandler(); // assign our handler xmlreader.setContentHandler(theRssHandler); // get our data via the url class InputSource is = new InputSource(url.openStream()); // perform the synchronous parse xmlreader.parse(is); // get the results - should be a fully populated RSSFeed instance, or null on error return theRssHandler.getFeed(); } catch (Exception ee) { // if we have a problem, simply return null return null; }
handle片段
实现startDocument,endDocument,startElement,endElement四个方法
开始文档初始化数组,开始元素时初始化元素,完成元素时,把内容添加元素对象中,再把元素对象添加到对象数组中
最后返回对象数组
RSSFeed getFeed() { return _feed; } public void startDocument() throws SAXException { // initialize our RSSFeed object - this will hold our parsed contents _feed = new RSSFeed(); // initialize the RSSItem object - we will use this as a crutch to grab the info from the channel // because the channel and items have very similar entries.. _item = new RSSItem(); } public void endDocument() throws SAXException { } public void startElement(String namespaceURI, String localName,String qName, Attributes atts) throws SAXException { depth++; if (localName.equals("channel")) { currentstate = 0; return; } if (localName.equals("image")) { // record our feed data - we temporarily stored it in the item :) _feed.setTitle(_item.getTitle()); _feed.setPubDate(_item.getPubDate()); } if (localName.equals("item")) { // create a new item _item = new RSSItem(); return; } if (localName.equals("title")) { currentstate = RSS_TITLE; return; } if (localName.equals("description")) { currentstate = RSS_DESCRIPTION; return; } if (localName.equals("link")) { currentstate = RSS_LINK; return; } if (localName.equals("category")) { currentstate = RSS_CATEGORY; return; } if (localName.equals("pubDate")) { currentstate = RSS_PUBDATE; return; } // if we don't explicitly handle the element, make sure we don't wind up erroneously // storing a newline or other bogus data into one of our existing elements currentstate = 0; } public void endElement(String namespaceURI, String localName, String qName) throws SAXException { depth--; if (localName.equals("item")) { // add our item to the list! _feed.addItem(_item); return; } }
2.使用XmlPullParser来解析rss
// TODO: switch to sax XmlPullParser xpp = Xml.newPullParser(); xpp.setInput(in, null); // null = default to UTF-8 int eventType; String title = ""; String link = ""; String description = ""; eventType = xpp.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { String tag = xpp.getName(); if (tag.equals("item")) { title = link = description = ""; } else if (tag.equals("title")) { xpp.next(); // Skip to next element -- assume text is directly inside the tag title = xpp.getText(); } else if (tag.equals("link")) { xpp.next(); link = xpp.getText(); } else if (tag.equals("description")) { xpp.next(); description = xpp.getText(); } } else if (eventType == XmlPullParser.END_TAG) { // We have a comlete item -- post it back to the UI // using the mHandler (necessary because we are not // running on the UI thread). String tag = xpp.getName(); if (tag.equals("item")) { RssItem item = new RssItem(title, link, description); mHandler.post(new ItemAdder(item)); } } eventType = xpp.next(); }
发表评论
-
linux使用透明的vim
2011-03-01 14:44 2677经常需要根据某个资料写点东西。这个时候在一个屏幕的时候就会容易 ... -
Ubuntu下的JNI入门
2010-08-05 22:00 26421.编写java代码 class HelloWorld { ... -
android Activity的四种加载模式
2010-08-05 15:39 2375standard和singleTop可以有很多个同一个Acti ... -
使用webview.copyBackForwardList()来进行判断是否是在当前页打开的链接
2010-07-09 13:29 4872本文只适合希望在webview中强制打开新链接在新标签。 使 ... -
ubuntu安装rtl8712,8188,8191,8192SU usb无线网卡的驱动
2010-06-21 21:03 17459笔记本自带的无线网卡,总是掉线,公司给了一个rtl8191s的 ... -
使用ant来发布一个android应用
2010-05-20 16:38 2384使用Ant创建发布一个android应用 1.使用命令创建一个 ... -
UBUNTU学习笔记
2010-02-01 08:49 17761.comp.os.mimix linux第一次 ... -
cvs中update 更新不到服务最新添加的目录解决方法
2010-01-18 11:28 21811.使用cvs -d$CVSROOT update,不能更新到 ... -
blockingQueue多线程中的小列子
2009-11-27 13:35 2025package com.demo; import ... -
linux:设置tomcat开机自动启动
2009-10-29 14:58 2323linux:设置tomcat开机自动启动 分公司的一台 ... -
在shell中快速移动光标实战
2009-09-04 09:38 0大家估计都听说过ctrl+a ctrl+e ctrl+k ct ... -
java使用正则表达式,简单提取xml中的内容
2009-09-02 17:53 12911我们现在互联网的交互很少可以离开xml了。有时候需要的xml很 ... -
MySQLdb对mysql数据库的中文操作测试补充(包括字符集gbk,utf8,latin1)
2009-08-24 17:04 3432前两天,用MySQLdb对mysql进行过中文测试,但是当 ... -
MySQLdb对mysql数据库的中文操作测试
2009-08-12 17:00 1733最近开始学习python,接触到了MySQLdb,总是会 ... -
ubuntu如何去掉噪音
2009-08-04 09:07 3055我自己测试出来的结果,是把音量控制中的cd设置成静音就可以了。 ... -
通过ip进行数据转发(支持post和soap)
2009-07-28 17:49 1843如果你经常跟运营商打交道,你也许会遇到以下几个问题: 1.经 ... -
网络分析使用的常用命令
2009-07-07 14:56 12221.机器名称:hostname 2.机器ip:ifconfig ... -
用tar来备份ubuntu系统
2009-07-01 09:03 1478可能你已经习惯了使用GHOST来备份WINDOWS的操作系统了 ... -
freemind中文方框解决
2009-06-30 11:44 5183网上看到介绍freemind不错,于是再ubuntu装上学习一 ... -
lsof 命令使用简介
2009-06-16 13:01 1314lsof(list open files)是一个列出当前系统打 ...
相关推荐
本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible Markup Language)是一种自定义标记语言,它的结构清晰,易于读写,适合于数据交换和...
XML Pull解析器是基于事件驱动的解析方式,它会触发一系列事件(如开始标签、结束标签、文本数据等),开发者可以注册监听这些事件,从而实现对XML文档的解析。这种方式既节省内存又提高效率,特别适合处理大型XML...
XML解析是将XML文档转换为Java对象的过程,这对于Android应用程序的资源配置、布局定义以及数据交换至关重要。这篇博文将深入探讨Android中的XML解析机制,包括DOM、SAX和Pull解析器三种主要方法。 首先,我们来看...
本文将深入探讨如何使用DOM(Document Object Model)解析XML在Android应用中的实践。DOM解析方式允许开发者一次性加载整个XML文档到内存中,形成一个树形结构,便于遍历和操作。尽管对于大型XML文件,DOM解析可能因...
Android XML 多种解析生成 Android 平台中,XML 文件解析和生成是非常重要的一部分。XML 文件可以存储和交换结构化数据,广泛应用于 Android 应用程序中。本文将介绍 Android 中使用多种解析和生成 XML 文件的方法...
Android系统提供了一种轻量级的XML解析方式——PULL解析器(Pull Parser),它适用于处理大型XML文档,因为它不需要像DOM解析器那样一次性加载整个XML文档到内存中。PULL解析器通过事件驱动的方式,按需解析XML文档...
Android提供了两种主要的XML解析方式:DOM(Document Object Model)和Pull解析器。下面我们将详细探讨这两种解析方法及其在Android下的实现原理。 **DOM解析** DOM解析器将整个XML文档加载到内存中,形成一个树形...
再者,Pull解析器是Android特有的,它提供了一种轻量级的解析方式,通过迭代调用`XmlPullParser`的下一个事件来解析XML。这种方式对内存的要求更低,适合移动设备。以下是一个基本的Pull解析示例: ```java ...
本主题将详细讲解如何在Android环境中利用Java进行XML解析,并生成JDOM库的jar文件。 XML解析在Android中的重要性不言而喻,因为XML常被用来描述应用程序的配置、布局,甚至是网络通信的数据交换格式。Java提供了...
本文将深入探讨如何在Android中使用Pull解析器解析XML文件。 一、XML Pull解析器简介 XML Pull解析器(XML Pull API)是一种基于事件驱动的解析模型,它不需预先加载整个XML文档,而是逐行读取,当遇到特定的XML...
对于XML的处理,Android提供了三种主要的解析方式:DOM(Document Object Model)、SAX(Simple API for XML)和PULL(Pull Parser)。下面将详细介绍这三种解析方式及其特点。 1. DOM解析: DOM解析器会将整个XML...
Android支持多种XML解析技术,包括DOM、SAX和Pull解析。每种方法都有其特定的优势和应用场景。 #### DOM解析XML DOM(Document Object Model)解析是一种将整个XML文档加载到内存中,并构建出一棵树状结构(称为DOM...
本例使用多种方式获取本地XML文件,还有通过url获取XML文件,使用Android内置的PULL解析器对XML文件进行解析,例子是解析我国各个省市。 《Android解析XML文件》博文路径:...
在Android中,有两种主要的XML解析方式:DOM(文档对象模型)和SAX(简单API for XML)。 1. DOM解析: DOM解析器会加载整个XML文档到内存中,形成一棵树形结构,每个节点代表XML文档的一部分。这种方式便于遍历和...
本文将深入探讨Android中的三种XML解析方式:SAX(Simple API for XML)、Pull Parser和DOM(Document Object Model),以及如何生成XML文件。 ### 1. SAX解析 SAX解析器是基于事件驱动的解析模型,它逐行读取XML...
二、Android中的XML解析实例 1. DOM解析实例: ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = ...
本文将深入探讨如何在Android环境中实现动态XML解析,尤其是在遇到不定结构的XML数据时的处理方法。 首先,我们需要了解XML解析的基本原理。XML解析分为两种主要类型:DOM(Document Object Model)解析和SAX...
本篇将详细探讨Android中的XML解析,特别是PULL解析方式,并讲解如何进行XML的写入操作。 ### 1. Android XML解析概述 XML解析器分为两种主要类型:DOM(Document Object Model)和PULL(Pull Parser)。DOM解析器...
在Android中,有两种主要的XML解析方式:DOM解析和SAX解析。DOM解析会将整个XML文档加载到内存中形成一棵DOM树,方便后续查询但消耗较多资源;而SAX解析是事件驱动的,逐行读取,不会加载整个文档,节省内存但操作...
本篇文章将详细探讨Android中四种主要的XML解析方法:SAXParser、Document、XMLResource和VTDGen。 1. SAXParser(Simple API for XML) SAXParser是基于事件驱动的解析器,适用于处理大型XML文档。它不会一次性...