带有前缀和自结束标记的 XMLPullParser


几天

以来,我在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"/>

我想获取图像 URL,我成功做到了。但是,我无法检测到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;
    }

我试图给出"缩略图","媒体:缩略图","/",似乎没有任何效果。你有想法吗?

您无法检测到结束标记,因为没有结束标记:缩略图标记是自关闭的。在您的解析代码中,当您第二次调用parser.require(代码片段的第 4 行)时,您会说如果我现在不在结束标记处,请抛出异常。所以,它当然会抛出一个例外。

解决方案很简单:删除对parser.require的第二次调用。

相关内容

最新更新