android - 带有前缀和自闭标记的 XMLPullParser

标签 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;
    }

我尝试提供“thumbnail”、“media:thumbnail”、“/”,但似乎没有任何效果。你有想法吗?

最佳答案

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

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

关于android - 带有前缀和自闭标记的 XMLPullParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903348/

相关文章:

powershell - 将大型 XML 文件解析为 PowerShell 对象

java - 如何通过 XStream 读取带有属性的列表元素

android - 在 android 中使用简单的 XML,找到一种方法来捕获元素的顺序?

java - 将 ArrayList 保存到实现序列化的共享首选项?

java - 如何在 openGL ES 3 android 中创建 VAO

xml - 在本地编辑/测试 XML、XSL 文件的环境?

java - 我的动画按钮显示的时间不够长

android - 显示嵌套的 LinearLayout 时出错

android - 从 Android Studio 自动提交并推送到 GitHub

java - 数字格式异常 : Invalid int "-"