0

我尝试解析以下类型的 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

4

2 回答 2

1

你在开始item标签中。您必须移动到结束item标签。通过调用parser.nextTag();否则,require 将尝试将标签之间的 TEXT与抛出异常的item结束标签匹配。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");
}
于 2012-09-21T09:58:30.897 回答
0

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

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

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

它仍然会在atom标签上失败,因为它没有文本,但我想你明白了。好吧,实际上它会在atom标签处失败,因为您只期望item标签,但这又不是真正的问题。

于 2012-08-13T11:57:30.383 回答