几天以来,我在 Android 上使用 XMLPullParser 进行 XML 解析时遇到问题。我正在尝试解析这个:
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-6JMmPoQTJOc/UoYaJT9Ih9I/AAAAAAAAE7I/mnO_69i8rAs/s72-c/ANTICIPA-Logo.png" height="72" width="72"/>
我想获取图片网址,我成功了。但是,我无法检测到 END_TAG,而且我不知道该怎么做。
这是我的解析代码:
private String readImage(XmlPullParser parser) throws IOException, XmlPullParserException {
parser.require(XmlPullParser.START_TAG, ns, "media:thumbnail");
String imageLink = parser.getAttributeValue(null, "url");
parser.require(XmlPullParser.END_TAG, ns, "thumbnail"); // THIS LINE HAS A PROBLEM
Log.d("DEBUG", imageLink);
return imageLink;
}
我尝试提供“thumbnail”、“media:thumbnail”、“/”,但似乎没有任何效果。你有想法吗?
最佳答案
您无法检测到结束标签,因为没有结束标签:缩略图标签是自闭合的。在您的解析代码中,当您第二次调用 parser.require
时(您的代码 fragment 的第 4 行),您说的是 如果我现在不在结束标记处,则抛出异常。所以,它当然会抛出异常。
解决方案很简单:删除对 parser.require
的第二次调用。
关于android - 带有前缀和自闭标记的 XMLPullParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903348/