- 浏览: 384876 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
longxishui12:
这个一定要顶得高高的。
[Android UI界面] android中仿iphone实现listview的反弹效果 -
klower.jiang:
Good job, Thank you so much!
能够兼容ViewPager的ScrollView -
ZSRTFAT:
...
file size 的大小计算
SAX,本地解析:
try { SAX(getAssets().open("data.xml")); } catch (Exception e) { e.printStackTrace(); }
public void SAX(InputStream input) throws Exception { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xReader = sp.getXMLReader(); XMLAdressInfo xmlAdress = new XMLAdressInfo(); xReader.setContentHandler(xmlAdress); xReader.parse(new InputSource(input)); //获得所有的数据 hashMap = xmlAdress.getData(); //获得省市对应的数据 provinceCity = xmlAdress.getCityData(); Log.d("dfdfd", ""+provinceCity.size()); }
public class XMLAdressInfo extends DefaultHandler{ private String characters = ""; private HashMap<String, HashMap<String, List<String>>> hashMap ; private HashMap<String, List<String>> hashMapCity ; private List<String> list; private String city; private String province; private HashMap<String, List<String>> provinceCity ; private List<String> cityList ; @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); String str = new String(ch, start, length); str = str.replace("\n", ""); str = str.replace("\t", ""); characters += str.trim(); } @Override public void startDocument() throws SAXException { super.startDocument(); hashMap = new HashMap<String, HashMap<String,List<String>>>(); provinceCity = new HashMap<String, List<String>>(); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); if(localName.equals("province")){ province = attributes.getValue("name"); hashMapCity = new HashMap<String, List<String>>(); cityList = new ArrayList<String>(); } if(localName.equals("city")){ list = new ArrayList<String>(); city = attributes.getValue("name"); } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); if(localName.equals("province")){ hashMap.put(province, hashMapCity); provinceCity.put(province, cityList); }else if(localName.equals("city")){ hashMapCity.put(city, list); cityList.add(city); }else if(localName.equals("district")){ list.add(characters); } characters = ""; } public HashMap<String, HashMap<String, List<String>>> getData(){ return hashMap; } public HashMap<String, List<String>> getCityData(){ return provinceCity; } }
PULL 解析:
PpdAdInfo ppdAdInfo = null ; try { XmlPullParser parser = Xml.newPullParser(); // XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); // parser.setInput(new StringReader(strResult));// 获得解析到的事件类别,这里有开始文档,结束文档,开始标签,结束标签,文本等等事件。 parser.setInput(StringTOInputStream(strResult), "UTF-8"); int eventType = parser.getEventType(); ppdAdInfosList = new ArrayList<PpdAdInfo>(); while (eventType != XmlPullParser.END_DOCUMENT) {// 一直循环,直到文档结束 switch (eventType) { case XmlPullParser.START_TAG: if (parser.getName().equals("ppdAd")) { ppdAdInfo = new PpdAdInfo(); } else if (parser.getName().equals("androidPackageName")) { eventType = parser.next(); ppdAdInfo.setAndroidPackageName(parser.getText()); } else if (parser.getName().equals("clickProxyURL")) { eventType = parser.next(); ppdAdInfo.setClickProxyURL(parser.getText()); } else if (parser.getName().equals("ppdCampaignId")) { eventType = parser.next(); ppdAdInfo.setPpdCampaignId(parser.getText()); } else if (parser.getName().equals("productThumbnail")) { eventType = parser.next(); ppdAdInfo.setProductThumbnail(parser.getText()); } else if (parser.getName().equals("productDescription")) { eventType = parser.next(); ppdAdInfo.setProductDescription(parser.getText()); } else if (parser.getName().equals("productName")) { eventType = parser.next(); ppdAdInfo.setProductName(parser.getText()); } else if (parser.getName().equals("rating")) { eventType = parser.next(); ppdAdInfo.setRating(parser.getText()); } break; case XmlPullParser.END_TAG: if (parser.getName().equals("ppdAd")) { ppdAdInfosList.add(ppdAdInfo); ppdAdInfo = null; } break; } eventType = parser.next(); } } catch (Exception e) { Log.d("test", "eeee__" + e.getMessage()); e.printStackTrace(); }
/** * 将String转换成InputStream * @param in * @return * @throws Exception */ public static InputStream StringTOInputStream(String in) throws Exception{ ByteArrayInputStream is = new ByteArrayInputStream(in.getBytes("ISO-8859-1")); return is; }
发表评论
-
drableleft
2012-12-07 15:11 1069Drawable close = getResource ... -
serviceToactivity
2012-10-08 09:47 867serviceToactivity 在Service中 ... -
数据库
2012-09-29 10:17 818判断当前数据库表中的字段是否存在: public ... -
cache保存和读取
2012-09-26 16:10 907读取: http://blog.csdn.net/An ... -
android sd卡状态、路径、可用空间,内存
2012-07-18 10:19 1652转载:android sd卡状态、路径、可用空间,内存 ... -
sd卡监听的问题
2012-07-16 15:53 1093http://www.cnblogs.com/error404 ... -
Android 文件打开方式
2012-07-13 09:29 1184转载:http://blog.csdn.net/weich_j ... -
深入理解android 卷II样章发布
2012-07-05 11:39 812转载: 深入理解android 卷II样章发布 h ... -
得到栈顶的activity
2012-07-03 14:43 1162得到栈顶的activity: private Stri ... -
phone调用紧急电话
2012-07-02 22:08 1304调用紧急电话, 解决紧急电话界面 按home键,回到锁屏界面 ... -
判断apk是否安装的sd卡,还是手机内存
2012-06-29 15:36 3551一、判断apk是否安装的sd卡,还是手机内存 P ... -
PackageInfo的操作
2012-06-18 16:40 1012一、判断当前SD卡是否存在: public stati ... -
dazhongdianping
2012-06-07 16:16 1172动画: http://www.apkbus.com/andr ... -
删除list的数据
2012-06-05 10:59 1249转载: http://www.cnblo ... -
getCacheDir的用法
2012-06-01 14:43 5352转载: http://www.cnblogs.com/ ... -
读写文件
2012-05-31 16:14 1093http://blog.csdn.net/feilong ... -
根据包名获得APP的ICON
2012-05-30 14:45 3469根据包名获得APP的ICON 1、 Drawable ... -
瀑布流
2012-05-30 14:42 913瀑布流 -
Android中获取应用程序(包)的信息-----PackageManager的使用(
2012-05-29 18:19 1278Android中获取应用程序( ... -
本地语言
2012-05-29 14:32 975public String getLocaleLanguage ...
相关推荐
而Pull解析器是Android平台特有的一种SAX解析实现,它进一步优化了内存使用,更适合移动设备的资源限制。 SAX Pull解析的核心思想是通过一个解析器从输入源读取XML文档,当遇到XML文档的开始标签、结束标签、文本...
SAX解析适合大型XML文件和复杂结构,而PULL解析则适用于小型XML文件和简单结构。在提供的`SAXParseDemo`项目中,你可以找到具体的SAX解析实现,通过阅读和理解代码,可以更好地掌握这两种解析方法的使用。 总之,...
该文章详细介绍了在Android环境下如何使用SAX和PULL解析XML,包括代码示例和步骤说明,对于初学者来说非常有帮助。 最后,压缩包中的"Weather"文件很可能是示例的天气预报XML数据。通过实际解析这个文件,你可以更...
Java解析XML的三种方式 Ø Android中,解析Xml数据的三种方式: Ø 1、DOM(org.w3c.dom) Ø “文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。...Ø 类似于SAX方式,程序以“拉取”的方式对Xml进行解析。
1. 使用SAX或PULL解析XML,当遇到需要处理的元素时,将相关信息保存到内存或写入新的XML文件。 2. 在解析过程中,根据处理的事件生成相应的XML元素。如果是开始元素,就创建一个新的元素;如果是结束元素,就关闭...
PULL解析器是SAX解析的一种变体,同样基于事件驱动,但提供了更面向对象的API。开发者可以主动控制解析过程,通过调用方法向前移动解析器并获取下一个事件。这种方式适合于资源受限的环境,如移动设备,因为它允许按...
在Android开发中,处理XML数据是常见的任务,而Pull解析器和SAX解析器是两种常用的轻量级、低内存占用的XML解析方式。本文将详细介绍这两种解析方式,并通过一个具体的XmlPullParserDemo实例来深入理解它们的工作...
XML解析主要有三种方式:SAX(Simple API for XML)、DOM(Document Object Model)和Pull解析器。下面将详细介绍这三种方法,并结合提供的"PullXmlDemo"文件,对Android中的XML解析进行深入探讨。 1. **SAX解析** ...
本文将深入探讨三种在Android中解析XML的主要方法:SAX(Simple API for XML)、Pull解析器和DOM(Document Object Model),并结合代码实现进行详细阐述。 **1. SAX解析** SAX(Simple API for XML)是一种事件...
本主题将深入探讨两种常见的解析方式:SAX(Simple API for XML)和Pull解析,这两种方法常用于服务器端的数据处理,以提供给用户高效且优化的数据服务。 SAX解析是一种事件驱动的解析方法,它不存储整个XML文档,...
在Java中,有三种主要的解析XML的方式:SAX(Simple API for XML)、Pull解析器和DOM4J。下面将详细介绍这三种方法以及它们在Eclipse 4.8和Java 1.8环境下的使用。 1. **SAX解析器** SAX是一种基于事件驱动的解析...
PULL解析器(Pull Parser)是Android特有的解析方式,类似于SAX,也是事件驱动的,但它提供了一个简单的API,使得开发者可以通过调用`next()`方法来手动控制解析过程。PULL解析器内存效率高,易于使用,适合Android...
本篇将详细讲解Android中三种主要的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和Pull解析器,并通过案例来帮助理解它们的工作原理和应用场景。 ### 1. SAX解析器 SAX(Simple API for...
PULL解析是Android平台上的特有解析方式,它类似于SAX解析,也是事件驱动的,但程序员控制解析过程,通过调用方法来“拉”下一个事件。PULL解析器适用于移动设备资源有限的情况,节省内存,并允许开发者根据需要控制...
3. **代码复杂度**:SAX解析通常需要编写更多的事件处理器,而Pull解析可能需要更多的手动操作,具体取决于你的需求和偏好。 4. **性能**:两者在性能上相差不大,具体取决于应用的具体情况。 在学习和使用这两种...
XML的解析方式有三种:SAX(Simple API for XML)、Pull解析和DOM(Document Object Model)解析。下面我们将详细探讨这三种解析方式及其特点。 1. **SAX解析**: SAX解析是一种基于事件驱动的解析方法,它不会一...
在Android开发中,XML Pull解析相比SAX和DOM解析有其优势。例如,它不需要一次性加载整个XML文档,因此内存消耗小;同时,解析过程可以被中断,适合处理大文件。此外,由于其事件驱动的特性,代码结构清晰,易于理解...
与SAX解析器类似,Pull解析器基于事件流,但提供了更灵活的控制,使得解析过程更为高效和直观。在Android开发中,Pull解析器被广泛应用于处理各种XML配置文件和数据文件。 ### 解析XML文件 在给定的示例中,我们有...
在Android系统中,XML Pull解析器是一个轻量级、高效的解析XML文档的工具,它不需要DOM(Document Object Model)或者SAX(Simple API for XML)等完整的解析器支持。Pull解析器允许开发者通过事件驱动的方式顺序...
大型XML文件或内存有限时,SAX和PULL解析更为合适,其中PULL解析因为其API的简洁性,通常更受Android开发者青睐。 了解了这三种解析方式的基本原理后,可以通过实际编程实践来掌握它们的使用。例如,可以创建一个...