一个android中使用sax解析xml的例子
2012-09-20 21:51
561 查看
config.xml文件如下:
[xhtml]
view plaincopy
<config>
<string-array name = "system_app_ti60">
<item>Browser.apk</item>
<item>Phone.apk</item>
<item>Contact.apk</item>
<item>Settings.apk</item>
<item>Gmail.apk</item>
</string-array>
</config>
用到的几个主要的类:
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.ParserConfigurationException;
XmlParser类:主要用于处理读取到的数据,如标签,文本等信息。
[java]
view plaincopy
private class XmlParser extends DefaultHandler
{
private ArrayList<String> array = new ArrayList<String>();
String mName = null;
private boolean mFound = false;
public ArrayList<String> getArrayString(){
return array;
}
//读取到开始标签信息时回调
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException{
if(localName.equals("string-array")){
mName = attributes.getValue(0);
if(mName.equals("system_app_ti60")){
mFound = true;
}
}
}
//读取到文本信息时回调
@Override
public void characters(char ch [ ], int start, int length) throws SAXException{
if(mFound){
String value = new String(ch,start,length);
if(!value.endsWith("apk"))
return;
array.add(value);
}
}
//读取到结束标签信息时回调
@Override
public void endElement(String uri, String localName, String qName) throws SAXException{
if(localName.equals("string-array")){
if(mFound){
mFound = false;
}
}
}
}
调用测试:
[c-sharp]
view plaincopy
try{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XmlParser handler = new XmlParser();
parser.parse(new File("/system_extend/system_extend_config.xml"), handler);
AppList = handler.getArrayString();
}
catch(SAXException e){
Log.i("hxd","SAXException");
return;
}
catch(ParserConfigurationException e){
Log.i("hxd","ParserConfigurationException");
return;
}
catch(IOException e){
Log.i("hxd","IOException");
return;
}
}
[xhtml]
view plaincopy
<config>
<string-array name = "system_app_ti60">
<item>Browser.apk</item>
<item>Phone.apk</item>
<item>Contact.apk</item>
<item>Settings.apk</item>
<item>Gmail.apk</item>
</string-array>
</config>
用到的几个主要的类:
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.ParserConfigurationException;
XmlParser类:主要用于处理读取到的数据,如标签,文本等信息。
[java]
view plaincopy
private class XmlParser extends DefaultHandler
{
private ArrayList<String> array = new ArrayList<String>();
String mName = null;
private boolean mFound = false;
public ArrayList<String> getArrayString(){
return array;
}
//读取到开始标签信息时回调
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException{
if(localName.equals("string-array")){
mName = attributes.getValue(0);
if(mName.equals("system_app_ti60")){
mFound = true;
}
}
}
//读取到文本信息时回调
@Override
public void characters(char ch [ ], int start, int length) throws SAXException{
if(mFound){
String value = new String(ch,start,length);
if(!value.endsWith("apk"))
return;
array.add(value);
}
}
//读取到结束标签信息时回调
@Override
public void endElement(String uri, String localName, String qName) throws SAXException{
if(localName.equals("string-array")){
if(mFound){
mFound = false;
}
}
}
}
调用测试:
[c-sharp]
view plaincopy
try{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XmlParser handler = new XmlParser();
parser.parse(new File("/system_extend/system_extend_config.xml"), handler);
AppList = handler.getArrayString();
}
catch(SAXException e){
Log.i("hxd","SAXException");
return;
}
catch(ParserConfigurationException e){
Log.i("hxd","ParserConfigurationException");
return;
}
catch(IOException e){
Log.i("hxd","IOException");
return;
}
}
相关文章推荐
- 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull)
- Android学习指南之三十一:Android中使用SAX和pull方式解析XML
- 一个简单的例子解析android中Handler线程和普通Thread的使用
- Android中SAX解析XML的使用
- 一个简单的使用jdom解析xml例子
- Android使用SAX实现XML解析,使用text/xml格式与后台交互
- android_xml解析之 使用SAX读取XML文件
- Android 使用Dom与SAX解析xml文档的方式
- SAX解析xml 例子使用
- android 使用SAX解析xml
- Android 使用SAX或者DOM或者pull解析XML文件
- Android 使用SAX或者DOM或者pull解析XML文件
- Android网络下使用SAX解析XML文档
- Android使用Sax 及Pull 解析Xml demo
- 使用DOM4J解析XML的一个例子
- android如何使用DOM来解析XML+如果做一个表情的弹出框
- Android中使用SAX来解析XML
- android学习——使用SAX、DOM 和 PULL 解析xml文件,及使用pull生成xml文件
- Android中使用SAX来解析XML
- Android中使用DOM解析xml时出现org.xml.sax.SAXParseException: Unexpected token