为此使用SAX
解析器或DOM
解析器.......
我给你一个SAX 解析器的工作示例,用于XML 形式parsing
的天气信息
主要活动:
public class WhetherXMLParsingAppActivity extends Activity {
EditText editCity;
EditText editState;
TextView textCurrW;
Button showButt;
HandlingXmlStuff doingWork;
final String baseURL ="http://www.google.com/ig/api?weather=";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editCity = (EditText)findViewById(R.id.edit_City);
editState = (EditText)findViewById(R.id.edit_State);
textCurrW = (TextView)findViewById(R.id.text_CurrWhether);
showButt = (Button)findViewById(R.id.button_Show);
showButt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String c = editCity.getText().toString();
String s = editCity.getText().toString();
StringBuilder URL = new StringBuilder(baseURL);
URL.append( c + "," + s);
String fullURL = URL.toString();
try {
URL website = new URL(fullURL);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
doingWork = new HandlingXmlStuff();
xr.setContentHandler(doingWork);
xr.parse(new InputSource(website.openStream()));
String endResult = doingWork.getInfo();
textCurrW.setText(endResult);
} catch (Exception e) {
textCurrW.setText("Error");
}
}
});
}
}
XML 处理类:
public class HandlingXmlStuff extends DefaultHandler{
XmlDataCollected xdc = new XmlDataCollected();
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
super.startElement(uri, localName, qName, attributes);
if (localName.equals("city")) {
String city = attributes.getValue("data");
xdc.setCity(city);
}else if (localName.equals("temp_f")) {
String t = attributes.getValue("data");
int temp = Integer.parseInt(t);
xdc.setTemp(temp);
}
}
public String getInfo() {
return xdc.dataToString();
}
}
数据处理类:
public class XmlDataCollected {
private int temp;
private String city;
public void setTemp(int temp) {
this.temp = temp;
}
public void setCity(String city) {
this.city = city;
}
public String dataToString() {
return "In " + city + " the Temperature in Farenheit is " + temp + " degress ";
}
}