加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

解析 XML文件 到哈希MAP

发布时间:2020-12-16 08:55:02 所属栏目:百科 来源:网络整理
导读:解析XML 文件是 android开发中常遇到的需求,以下是一种实现方式。 xml 文件如下: ?xml version="1.0" encoding="utf-8"? items drawable name="wallpaper_00"大海/drawable drawable name="wallpaper_01"高山/drawable drawable name="wallpaper_02"草原/d


解析XML 文件是 android开发中常遇到的需求,以下是一种实现方式。



xml 文件如下:
<?xml version="1.0" encoding="utf-8"?>
<items>
<drawable name="wallpaper_00">大海</drawable>
<drawable name="wallpaper_01">高山</drawable>
<drawable name="wallpaper_02">草原</drawable>
<drawable name="wallpaper_03">光线</drawable>
<drawable name="wallpaper_04">折影</drawable>
<drawable name="wallpaper_05">幽谷</drawable>
<drawable name="wallpaper_06">大桥</drawable>
<drawable name="wallpaper_07">城市</drawable>
<drawable name="wallpaper_08">五彩</drawable>
<drawable name="wallpaper_09">炫光</drawable>
<drawable name="wallpaper_10">视觉</drawable>
<drawable name="wallpaper_11">平凡之路</drawable>
<drawable name="wallpaper_12">碎花</drawable>
</items>


如何解析呢? android 中通常用PullXmlParser。

public Map<String,String> parseWallpaperXml2Map( String filePath ) {


File file = new File( filePath);
InputStream inStream =null;

try{

inStream = new FileInputStream( file );


}catch( FileNotFoundException e){
e.printStackTrace();

}catch( IOException e ){

e.printStackTrace();
}


Map <String,String > redirectionMap = new HashMap<String,String > ();
XmlPullParser parser = Xml.newPullParser();
Log.v( TAG,"Begin");
try{
parser.setInput( inStream,"UTF-8");

int eventType = parser.getEventType();
String resType = null;
String resName = null;
String resText = null;
String drawableName = null;
String attriName = null;
String attriValue = null;
List<String> valList = null;

while( eventType != XmlPullParser.END_DOCUMENT ){
if( XmlPullParser.START_TAG == eventType ){
resType = parser.getName();


if( null != resType && resType.equalsIgnoreCase("drawable") ){
attriName = parser.getAttributeName(0);
attriValue = parser.getAttributeValue(null,attriName);
resName = parser.nextText();
if( null != resName && attriValue != null ){


redirectionMap.put(attriValue,resName);
}
}
}
eventType = parser.next();
}

Log.v( TAG,"End");
}catch(XmlPullParserException e){
e.printStackTrace();
}catch( IOException e ){

e.printStackTrace();
}
return redirectionMap;

}




至此返回了一个MAP 。这个MAP 中的键值对和 XML 文件中的键值对是一一对应的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读