使用XmlResourceParser解析xml

前端之家收集整理的这篇文章主要介绍了使用XmlResourceParser解析xml前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Android 中解析xml的方式有四种:DOM、SAX、Pull(使用的是XmlPullParser类进行解析)以及自己提供的XmlResourceParser(这里不确定XmlResourceParser属不属于Pull的一种,所以单独列出来)。

使用方式:

XmlPullParser:

XmlPullParser xmlPullParser = Xml.newPullParser();
InputStream is = null;
try {
is = context.getResources().getAssets().open("emoji_properties.xml") ;
//2.设置XmlPullParser的参数
xmlPullParser.setInput(is,"utf-8");
eventType = xmlPullParser.getEventType();

...

catch(Exception e){

e.printStackTrace();

}finally {

if (null != is){
try {
is.close();
}catch (IOException e){
e.printStackTrace();
}
}
}


XmlResourceParser:

XmlResourceParser xmlResourceParser = context.getResources().getXml(R.xml.emoji_properties);
try {
eventType = xmlResourceParser.getEventType();

}catch(Exception e){

e.printStackTrace();

}finally{

xmlResourceParser.close();

}

注:省略的部分,两者代码一致

Android中的布局文件就是使用XmlResourceParser 进行解析的,而且写法也简便很多,大部分情况下是可以使用的。

但是当xml文件中包含特殊字符时需要酌情使用,比如当其中包含单引号时会导致解析失败,例如: /::'( 会被解析成 /::

这个问题不是一定的,比如我的测试代码和项目中的代码连同配置文件的版本都一致,但测试代码好使,项目就是不好使,

还望知道原因的留言告知。

所以酌情使用...

原文链接:https://www.f2er.com/xml/293617.html

猜你在找的XML相关文章