1
我需要从URL获取一些信息(“http://someurl.com/file.xml”)。 标签中的信息 - “名称”,“姓氏”。从url解析xml。例外
我该怎么做?
我知道我必须使用AsyncTask进行互联网连接。
我试图使用的AsyncTask XMLPullParser,但我得到的例外 “IndeOutOfBound”
class RequestTask extends AsyncTask<String, Void, Void> {
String name;
@Override
protected InputStream doInBackground(String... uri) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new InputStreamReader(
getUrlData("http://someurl.com/file.xml")));
while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) {
if (xpp.getEventType() == XmlPullParser.START_TAG) {
if (xpp.getName().equals("name")) {
name=xpp.getAttributeValue(0);
}
}
xpp.next();
}
} catch (Throwable t) {
}
} catch (IOException e) {
//Handle problems..
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Toast.makeText(getActivity().getApplicationContext(),
"name="+name, Toast.LENGTH_SHORT).show();
}
}
嗨 - 你有没有得到解决?我猜你的XML看起来像' Joe Blow '。只是猜测(根据您提供的这些信息)。但是这样的元素没有“属性”,如果你试图调用“xpp.getAttributeValue()”,会导致“indexOutOfBounds”异常。问:你有没有发现问题?问:我的回复中的链接是否有帮助? –
paulsm4
你是对的人!非常感谢! – researcher