- 浏览: 1225374 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
现在写了些博客后,变懒了!!!
1.在anddev.org上参考的一个例子: SaxParseXml.java文件
2. ExampleHandler.java主要承担xml的解析工作
3. ParsedExampleDataSet.java将解析出的内容复制到比如一个对象属性上
4.测试的xml文件
1.在anddev.org上参考的一个例子: SaxParseXml.java文件
package cn.com; import java.io.InputStream; import java.net.URL; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class SaxParseXml extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); /* Create a new TextView to display the parsingresult later. */ TextView tv = new TextView(this); try { /* Create a URL we want to load some xml-data from. */ //URL url = new URL( //"http://www.anddev.org/images/tut/basic/parsingxml/example.xml"); InputStream is = getAssets().open("dom.xml"); /* Get a SAXParser from the SAXPArserFactory. */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); /* Get the XMLReader of the SAXParser we created. */ XMLReader xr = sp.getXMLReader(); /* Create a new ContentHandler and apply it to the XML-Reader */ ExampleHandler myExampleHandler = new ExampleHandler(); xr.setContentHandler(myExampleHandler); /* Parse the xml-data from our URL. */ //xr.parse(new InputSource(url.openStream())); xr.parse(new InputSource(is)); /* Parsing has finished. */ /* Our ExampleHandler now provides the parsed data to us. */ ParsedExampleDataSet parsedExampleDataSet = myExampleHandler .getParsedData(); /* Set the result to be displayed in our GUI. */ tv.setText(parsedExampleDataSet.toString()); } catch (Exception e) { /* Display any Error to the GUI. */ tv.setText("Error: " + e.getMessage()); } /* Display the TextView. */ this.setContentView(tv); } }
2. ExampleHandler.java主要承担xml的解析工作
package cn.com; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class ExampleHandler extends DefaultHandler { // =========================================================== // Fields // =========================================================== private boolean in_outertag = false; private boolean in_innertag = false; private boolean in_mytag = false; private ParsedExampleDataSet myParsedExampleDataSet = new ParsedExampleDataSet(); // =========================================================== // Getter & Setter // =========================================================== public ParsedExampleDataSet getParsedData() { return this.myParsedExampleDataSet; } // =========================================================== // Methods Receive notification of the beginning of the document // =========================================================== @Override public void startDocument() throws SAXException { this.myParsedExampleDataSet = new ParsedExampleDataSet(); } @Override public void endDocument() throws SAXException { // Nothing to do } // Gets be called on opening tags like: <tag> Can provide attribute(s), when // xml was like: <tag attribute="attributeValue"> // @Override public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { if (localName.equals("outertag")) { this.in_outertag = true; } else if (localName.equals("innertag")) { this.in_innertag = true; } else if (localName.equals("mytag")) { this.in_mytag = true; } else if (localName.equals("tagwithnumber")) { // Extract an Attribute String attrValue = atts.getValue("thenumber"); int i = Integer.parseInt(attrValue); myParsedExampleDataSet.setExtractedInt(i); } } /** * Gets be called on closing tags like: </tag> */ @Override public void endElement(String namespaceURI, String localName, String qName) throws SAXException { if (localName.equals("outertag")) { this.in_outertag = false; } else if (localName.equals("innertag")) { this.in_innertag = false; } else if (localName.equals("mytag")) { this.in_mytag = false; } else if (localName.equals("tagwithnumber")) { // Nothing to do here } } // Gets be called on the following structure: <tag>characters</tag> @Override public void characters(char ch[], int start, int length) { if (this.in_mytag) { //myParsedExampleDataSet.setFirstTag(new String(ch, start, length)); } if (this.in_mytag) { myParsedExampleDataSet.setExtractedString(new String(ch, start, length)); } } }
3. ParsedExampleDataSet.java将解析出的内容复制到比如一个对象属性上
package cn.com; public class ParsedExampleDataSet { private String extractedString = null; private int extractedInt = 0; public String getExtractedString() { return extractedString; } public void setExtractedString(String extractedString) { this.extractedString = extractedString; } //public void setFirstTag(String ){ //} public int getExtractedInt() { return extractedInt; } public void setExtractedInt(int extractedInt) { this.extractedInt = extractedInt; } public String toString() { return "ExtractedString = " + this.extractedString + "nExtractedInt = " + this.extractedInt; } }
4.测试的xml文件
<?xml version="1.0" encoding="utf-8"?> <outertag> <innertag sampleattribute="innertagAttribute"> <mytag>anddev.org gfgf</mytag> <tagwithnumber thenumber="1220"/> </innertag> </outertag>
发表评论
-
WebView加载网页进度条显示
2012-03-06 19:52 2347重写WebChromeClient一个方法进行进度条显示: ... -
基于UDP协议的数据交互例子
2011-12-18 11:06 1703直接贴上代码: 客户端: package com.exam ... -
一种更灵活的数据传输方式:HTTP(2)
2011-12-16 11:18 2988HTTP是大多数应用程序中常用的与服务端交互的通讯方式 ... -
一种更灵活的数据传输方式:HTTP(1)
2011-12-16 10:52 1949使用WebService虽然 ... -
重用WebView的cache图片文件
2011-09-15 15:06 2031如何从WebView使用的cache文件夹中重复使用一些图片资 ... -
开,关闭GPRS的简单Demo
2011-06-09 10:54 2732Android应用中开,关闭GPRS的简单Demo,可能在有的 ... -
Intent打开各种类型文件
2011-04-10 18:22 4419//android获取一个用于打开PPT文件的intent ... -
图片Url保存为位图并进行缩放操作
2010-10-12 15:33 13561.通过传入图片url获取位图方法: public Bit ... -
判断手机有无网络
2010-09-15 16:18 2840ConnectivityManager cwjManage ... -
GoogleMap(通过输入地址,查询显示在google 地图上)
2010-08-15 10:18 4651主Activity: package net.blogja ... -
Android手机使用中国电信天翼上网设置
2010-08-07 16:01 3843众所周知Android手机的上网功能需要用到APN(网络接入点 ... -
GPS取得卫星个数
2010-08-07 15:09 2937LocationManager manager = (Lo ... -
连接服务器超时的Demo
2010-08-05 11:49 2416下面这个例子是连接网络超时的例子: package cn. ... -
下载网络文件到SD卡上
2010-08-02 19:07 3369下面一个一个类的来进行介绍: 1.DownLoadProgre ... -
下载网路图片到SD卡上新建文件夹当中
2010-07-27 22:52 31901.DownloadImages.java文件 packa ... -
xml中DOM对象的学习
2010-07-03 13:57 1283DOM的基本对象有5个:Doc ... -
DOM方式解析xml文件3(assets中xml文件)
2010-07-03 13:44 2565这个例子是进一步熟悉DOM解析xml文件的方法,附带基础的文档 ... -
DOM方式解析xml文件2(解析本地xml)
2010-07-01 20:42 1585这个与1的方法唯一不同的就是传递InputSource的参数: ... -
DOM方式解析xml文件1(解析网路xml)
2010-07-01 20:14 1585其实网上很多资料讲关 ... -
下载显示网路图片的例子
2010-07-01 10:46 1484一个很简单的例子,直接上代码: 1. ShowUrlImage ...
相关推荐
6. **DOM和SAX解析器**:对于较大的XML文件,Android提供了两种解析机制。DOM(Document Object Model)将整个XML文档加载到内存中,便于遍历和操作。而SAX(Simple API for XML)是事件驱动的,逐行解析XML,占用...
对于 Android,通常是从 Asset 目录或者网络读取 XML 文件。 ```java parser.setInput(getInputStream(), "UTF-8"); ``` 3. **解析过程**:解析器的事件循环开始,每次调用 `parser.next()` 将返回当前事件类型...
9. SAX解析XML文件:SAX解析器是一种基于事件驱动的解析方式,它不需要将整个XML文档加载到内存,从而节省资源,适用于处理大型XML文件。而DOM解析器会将整个XML文档加载到内存,便于进行各种操作,但消耗较大内存。...
* Android中解析XML文件可以使用SAX、DOM、PULL等方法,其中DOM方法将整个文档加载到内存中进行解析。 三、权限管理相关知识点 * Android中需要使用摄像头硬件的权限是 android.permission.CAMERA。 四、Camera...
而`SAX`和`PULL`是基于事件的解析方式,它们不会一次性加载整个文件,相对节省资源。`JSON`则与XML解析无关。 3. 调用Android设备的摄像头硬件需要在`AndroidManifest.xml`文件中添加`...
3. **文件解析**:如果AssetCheckContentHandle处理的是结构化数据(如XML或JSON),它可能包含了解析和验证这些文件内容的方法。这可能涉及到DOM、SAX或Jackson库等解析技术。 4. **异常处理**:考虑到可能出现的...
- **SAX解析**:适用于大文件,按事件驱动的方式解析,内存占用低,但代码复杂度相对较高。 - **Pull解析**:Android提供的`XmlPullParser`接口,类似于SAX,但更易于使用,适合Android平台。 3. **获取特定信息*...
23. XML解析的三种方式:DOM、SAX和Pull解析,以及它们各自优缺点。DOM需要将整个XML文档加载到内存,SAX是基于事件驱动的流式解析,Pull解析是SAX的迭代器形式。 24. Android缓存机制:包括内存缓存(如LruCache)...
- **知识点概述**:Android中有几种不同的方法可以用来解析XML文件,其中包括SAX、PULL、DOM等。 - **详细解释**: - **SAX**(Simple API for XML):一种基于事件驱动的解析器,适用于大文件的解析,因为它不...
- XML解析方式包括DOM、SAX、Pull等,官方推荐使用Pull解析器。 29. 百度地图核心类和功能: - 百度地图SDK提供的核心类,如BDLocation、BMapManager等,可以实现地图展示、定位、路径规划等功能。 30. GC内存...
10.1.4 从asset中读取文件 10.2 SharedPreferences(键值数据存储) 10.3 SQLite语法 10.4 SQLite数据操作 10.4.1 SQLLiteOpenHelper类 10.4.2 数据库表的增删改查 10.4.3 分页查询 10.5 SQLite事务支持 10.6 ...