您的位置:首页 > 移动开发 > Android开发

Android解析xml——pull

2013-05-09 15:10 288 查看




XmlPullParser

1.简介:pull解析是android推荐的解析方式。他是一个接口,所以使用的时候多用XmlPullParserFactory来实例化

/**
* 获得parser对象
*/
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();


2.设置命名标准控件

factory.setNamespaceAware(true);


3.读取is流并,设置编码

parser.setInput(is, "utf-8");


4.主要方法

/**
* 获得下一个节点,用于访问较高级别的标签,只能获得下面四个int值
*/
parser.next();
/**
* 将返回一下四个属性
*/
START_TAG:读取了一个开始标签。
TEXT:返回文本信息,可以使用getText()方法获得信息。
END_TAG:读取了一个结束标签。
END_DOCUMENT:文档读取结束。


5.根据xml的特点和pull解析的特点,有如下demo:

public static List<Tittle_Content_contentInfo> xmlpull(InputStream is)
throws XmlPullParserException, IOException {
// 保存联系人
ArrayList<Tittle_Content_contentInfo> infos = new ArrayList<Tittle_Content_contentInfo>();
/**
* 获得parser对象
*/
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
factory.setNamespaceAware(true);
parser.setInput(is, "utf-8");
parser.nextTag();
parser.nextTag();
parser.nextTag();
if ("succ".equals(parser.getAttributeValue(0))) {
getInfo(parser, infos);
} else {
return null;
}
return infos;
}

/**
* 获得xml信息
*
* @param parser
* @throws XmlPullParserException
* @throws IOException
*/
public static void getInfo(XmlPullParser parser,
List<Tittle_Content_contentInfo> infos)
throws XmlPullParserException, IOException {
Tittle_Content_contentInfo info = null;
int type = parser.next();
while (type != XmlPullParser.END_DOCUMENT) {
if (XmlPullParser.START_TAG == type
&& "contentinfo".equals(parser.getName())) {
info = new Tittle_Content_contentInfo();
parser.nextTag();
info.setContentid(parser.getAttributeValue(0));
parser.nextTag();
parser.nextTag();
info.setBiaoti(parser.getAttributeValue(0));
parser.nextTag();
parser.nextTag();
info.setNeirong(parser.getAttributeValue(0));
parser.nextTag();
parser.nextTag();
info.setContentaddress(parser.getAttributeValue(0));
infos.add(info);
}
type = parser.next();
}
}

数据接口:http://gusong.ltzsxx.com/GetContent.jsp?classid=1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: