我发现了几个关于名称问题的问题,但无法使其中任何一个问题起作用。我想要的是获取媒体的网址:缩略图标签:
<media:thumbnail width="144" height="81" url="http://c.files.bbci.co.uk/6013/production/_88159542_3e6f2bc3-16a3-407d-9e07-62bae1fa755e.jpg"/>
在此类标记的示例上方
private void handleText(String text) {
String xmlText = text;
if (currentEntry != null && currentTag != null) {
if (currentTag.equals(TITLE)) {
currentEntry.setTitle(xmlText);
} else if (currentTag.equals(DESC)) {
currentEntry.setDescription(xmlText);
} else if (currentTag.equals(LINK)) {
currentEntry.setLink(xmlText);
} else if (currentTag.equals(IMAGE)) {
currentEntry.setImage("test");
}
}
}
我尝试了几件事:
xpp.getAttributeValue(null,&#34; url&#34;);并将图像设置为。但是我注意到我甚至没有进入那个if if子句。我在IMAGE变量上尝试了几个值,如:
我还设置了名称空间感知:
factory.setNamespaceAware(true);
我做错了什么?
解析器:
XmlPullParser xpp;
int eventType;
protected List<Entry> doInBackground(String... string) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
xpp = factory.newPullParser();
xpp.setInput(getInputStream(new URL("http://feeds.bbci.co.uk/news/technology/rss.xml?edition=uk")), "UTF_8");
eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
handleStartTag(xpp.getName());
} else if (eventType == XmlPullParser.END_TAG) {
currentTag = null;
} else if (eventType == XmlPullParser.TEXT) {
handleText(xpp.getText());
}
eventType = xpp.next();
}
} catch (Resources.NotFoundException e) {
Log.d(LOGTAG, e.getMessage());
} catch (XmlPullParserException e) {
Log.d(LOGTAG, e.getMessage());
} catch (IOException e) {
Log.d(LOGTAG, e.getMessage());
}
return entries;
}
答案 0 :(得分:0)
我修好了。我把它解析的开始标记系统化了,它显示为:thumbnail。所以我改变了我的IMAGE常量,使其具有“thumbnail”的值。它从未出现在thumbnail子句中,因为handleText方法只处理标记中的已找到文本。由于media:thumbnail没有文本属性,我需要在handleStartTag方法中处理它。在那里我可以说当前标签名称等于“thumbnail”获取url和setImage的属性值作为该值。