XML资源实际上就是XML格式的文本文件。这些文件不需保存上resxml目录中。可以通过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 //属性名 xml.getAttributeName(i) //属性值 xml.getAttributeValue(i) } } //标签结束状态 if(eventType == XmlParser.END_TAG){} //读取标签内容状态 if(eventType == XmlParser.TEXT){} //文档结束状态 if(eventType == XmlParser.END_DOCUMENT){ //文档分析结束 break; } //关键一步!!!切换到一下状态判断 eventType = xml.next(); } }