带有前缀和自闭标签的XMLPullParser

时间:2014-01-03 12:10:30

标签: android xml xml-parsing

我有几天在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;
    }

我试图给出“缩略图”,“媒体:缩略图”,“/”,似乎没什么用。你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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