android 开发之解析XML文件
2010-07-01 15:18:00 来源:WEB开发网if (localName.equals("wind_condition")) {
googleWeather.setWindCondition(atts.getValue("data"));
}
}
}
/*
* 本方法在结束一个标签时调用
*/
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
// 当遇到标签时,说明当前天气情况解析完毕,下一步将
// 解析未来几天的天气,所以将forecastTag设置为true
if (localName.equals("current_conditions")) {
forecastTag = true;
}
// 遇到里,设置forecastTag为false
if (localName.equals("weather")) {
forecastTag = false;
}
// 当遇到时,说明未来一天的天气情况解析完毕,
// 我们将它增加到list中,接着往下解析
if (localName.equals("forecast_conditions")) {
forecastConditions.add(gfc);
}
}
public void characters(char[] p0, int p1, int p2) throws SAXException {
// 本方法用来解析ideasandroid 这样的标签 本例中没有用到 可结合startElement 和
// endElement使用
// new String(p0, p1, p2)即可取得值ideasandroid
}
}
具体的解析过程在注释中已说明,这里不在阐述,下面我们看看怎么样读取XML文件,并解析XML,如下所示:
//获取SAX解析工厂实例
SAXParserFactory spf = SAXParserFactory.newInstance();
URL url = new URL(weatherUrl);
SAXParser saxParser = spf.newSAXParser();
XMLReader xr = saxParser.getXMLReader();
//设置解析器为刚才我们创建的GoogleWeatherHandler
xr.setContentHandler(mweatherhandler);
InputStreamReader isr = new InputStreamReader(url.openStream(), "GBK");
//开始解析
xr.parse(new InputSource(isr));
好了,这样我们就完成了两个xml的解析过程!有问题!请留言!
原文: http://www.ideasandroid.com/?p=231
更多精彩
赞助商链接