在Android XmlPullParser XML [英] XmlPullParser XML on Android
本文介绍了在Android XmlPullParser XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图解析来自Android的一些XML。下面是一个位在XML的一个例子的
I'm trying to parse some XML from Android. Below is a bit of an example of the XML:
<updates at="1342481821" found="616" sorting="latest_updates" showing="Last 4D">
<show>
<id>
3039
</id>
<last>
-14508
</last>
<lastepisode>
-14508
</lastepisode>
</show>
<show>
<id>
30612
</id>
<last>
-13484
</last>
<lastepisode>
163275
</lastepisode>
</show>
等等....
这是实际的code:
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
URL url = new URL("http://services.tvrage.com/feeds/last_updates.php?hours=" + hours);
InputStream stream = url.openStream();
xpp.setInput(stream, null);
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
}
else if (eventType == XmlPullParser.END_DOCUMENT) {
}
else if (eventType == XmlPullParser.START_TAG) {
if (xpp.getName().equalsIgnoreCase("id")) {
showIds.add(Integer.parseInt(xpp.nextText()));
}
else if (eventType == XmlPullParser.END_TAG) {
}
else if (eventType == XmlPullParser.TEXT) {
}
eventType = xpp.next();
}
}
} catch
...等。
这给了没有结果,而 EVENTTYPE
总是 0
调试器。这个例子网址在浏览器中正常工作。任何想法?
This gives no results, and eventType
is always 0
in debugger. The example URL works fine in a browser. Any ideas?
推荐答案
您只执行 xpp.next()
在 EVENTTYPE == XmlPullParser。 START_TAG
。
移动 xpp.next
这一条线下来,它总是执行。
You only execute xpp.next()
when eventType == XmlPullParser.START_TAG
.
Move xpp.next
it one line down so it always executes.
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
}
else if (eventType == XmlPullParser.END_DOCUMENT) {
}
else if (eventType == XmlPullParser.START_TAG) {
if (xpp.getName().equalsIgnoreCase("id")) {
showIds.add(Integer.parseInt(xpp.nextText()));
}
else if (eventType == XmlPullParser.END_TAG) {
}
else if (eventType == XmlPullParser.TEXT) {
}
// eventType = xpp.next(); <-- remove it
}
eventType = xpp.next(); // <-- move here
}
} catch
这篇关于在Android XmlPullParser XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文