XML资源实际上就是XML格式的文本文件。这些文件不需保存上res\xml目录中。可以通过Resources.getXML()方法获得处理指令XML文件的XMLResourcesParser对象。这个处理过程与SAX差不多,不同的就是SAX是基于事件模型,而XMLResourcesParser通过调用next方法不断更新当前的状态。例:
StringBuffer sb = new StringBuffer();
XmlResourceParser xml = getResources().getXML(R.xml.android);
try{
//切换到下一个状态,并获得当前状态的类型
int eventType = xml.next();
while(true){
//文档开始状态
if(eventType == XmlParser.START_DOCUNMENT){}
//标签开始状态
if(eventType == XmlParser.START_TAG){
//获得标签名字 xml.getName();
//获得当前标签的属性个数 int count = xml.getAttributeCount();
//获取当前标签所有属性的名称和属性值添加
for(int i=0;i<count;i++){
//属性名 xml.getAttributeName(i)
//属性值 xml.getAttributeValue(i)
}
}
//标签结束状态
if(eventType == XmlParser.END_TAG){}
//读取标签内容状态
if(eventType == XmlParser.TEXT){}
//文档结束状态
if(eventType == XmlParser.END_DOCUMENT){
//文档分析结束
break;
}
//关键一步!!!切换到一下状态判断
eventType = xml.next();
}
}