websites.xml:
<?xml version="1.0" encoding="utf-8"?>
<websites>
<website id="0" src="http://www.google.com.hk">谷歌</website>
<website id="1" src="http://www.qq.com">腾讯</website>
<website id="2" src="http://www.sina.com.cn">新浪</website>
<website id="3" src="http://www.taobao.com">淘宝</website>
</websites>
package com.demo.xml;
public class Site {
private String id;
private String src;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSrc() {
return src;
}
public void setSrc(String src) {
this.src = src;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
对应的解析函数:
//针对Dom方式解析
private List<Map<String,String>> getDomData(){
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
InputStream stream = getResources().openRawResource(R.raw.websites);
List<Site> siteList = getSiteList(stream);
for(int i =0; i < siteList.size(); i++){
Map<String,String> map = new HashMap<String,String>();
Site site = siteList.get(i);
map.put("id",site.getId());
map.put("src",site.getSrc());
map.put("name", site.getName());
list.add(map);
}
return list;
}
public List<Site> getSiteList(InputStream inStream){
List<Site> siteList = new ArrayList<Site>();
//得到 DocumentBuilderFactory对象,由该对象可以得到 DocmentBuilder对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();//DocumentBuilder 对象
Document doc = builder.parse(inStream);//包含整个xnl内容的 Document对象
Element root = doc.getDocumentElement();//得到 根节点
NodeList websites = root.getElementsByTagName("website");//获取根节点下 所有的 website 节点
for(int i =0; i< websites.getLength(); i++){ //遍历
Site site = new Site();
Element e = (Element)websites.item(i);
site.setId(e.getAttribute("id"));
site.setSrc(e.getAttribute("src"));
site.setName(e.getFirstChild().getNodeValue());
siteList.add(site);
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return siteList;
}
效果: