Android中的XmlPullParser

问题描述 投票:0回答:1

我想从this rss feed解析xml,但我只是得到这样的东西:

“新来港定居人士

最后更新时间:5月28日下午6:45“

我没有足够的声誉所以我可以发布单词而不是图像。请原谅我。

我真的是Android中的新手,所以我复制了this网站上的代码并做了一些修改来解析上面的xml数据。我读了别人的问题并认为问题是关于“频道”标签,但经过一些修改后,没有任何改变。这是核心代码:

private List<Entry> readFeed(XmlPullParser parser) throws XmlPullParserException, IOException {
    List<Entry> entries = new ArrayList<Entry>();

    parser.require(XmlPullParser.START_TAG, ns, "rss");

    parser.next();//I add this statement to pass the channel tag but it doesn't work

    while (parser.next() != XmlPullParser.END_TAG) {
        String name = parser.getName();
       if (parser.getEventType() != XmlPullParser.START_TAG) {
            continue;
        }
        // Starts by looking for the entry tag
        if (name.equals("item")) {
            entries.add(readEntry(parser));
        } else {
            skip(parser);
        }
    }
    return entries;
}

private Entry readEntry(XmlPullParser parser) throws XmlPullParserException, IOException {

    parser.require(XmlPullParser.START_TAG, ns, "item");
    String title = null;
    String description = null;
    String link = null;
    while (parser.next() != XmlPullParser.END_TAG) {
        if (parser.getEventType() != XmlPullParser.START_TAG) {
            continue;
        }
        String name = parser.getName();
        if (name.equals("title")) {
            title = readTitle(parser);
        } else if (name.equals("description")) {
            description = readDescription(parser);
        } else if (name.equals("link")) {
            link = readLink(parser);
        } else {
            skip(parser);
        }
    }
    return new Entry(title, description, link);
}

如果有人能提供帮助我会很感激的。

android xmlpullparser
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.