XmlPullParser不通过Xml进行

时间:2012-08-13 11:49:13

标签: android xml-parsing xmlpullparser

我正在尝试解析以下类型的XML。

XmlToBeParsed

我用来解析的代码就是这个:

parser.nextTag();
parser.require(XmlPullParser.START_TAG, null, "feed");

while(parser.nextTag() == XmlPullParser.START_TAG) {
    parser.require(XmlPullParser.START_TAG, null, "item");
    System.out.println(parser.getName());
    parser.require(XmlPullParser.END_TAG, null, "item");
}

有人可以告诉我我做错了什么吗?我得到的错误是XmlPullParserException意外类型位置:TEXT SORIN

2 个答案:

答案 0 :(得分:1)

您处于开始item标记中。您必须移至最终item标记。通过调用parser.nextTag();,否则,require会尝试将item标记之间的TEXT与item的结束标记匹配,这会引发异常。

parser.nextTag();
parser.require(XmlPullParser.START_TAG, null, "feed");

while(parser.nextTag() == XmlPullParser.START_TAG) {

    parser.require(XmlPullParser.START_TAG, null, "item");
    System.out.println(parser.getName());
    parser.nextTag();
    parser.require(XmlPullParser.END_TAG, null, "item");
}

答案 1 :(得分:0)

parser.getName()为您提供当前标记的名称(例如“item”)。您需要当前标记的文本内容。

System.out.println(parser.getName());更改为

parser.require(XmlPullParser.TEXT);
System.out.println(parser.getText());

它仍会在atom标签处失败,因为它没有文字,但我认为你明白了。好吧,实际上它会在atom标记处失败,因为您只需要item个标记,但这不是真正的问题。