1

遇到无法解析博客 RSS 中的链接标签的问题。因为它在每个标签中都有 6 个链接标签。这就是为什么会出现问题。我尝试使用以下编码进行解析,但失败了。

这是来自博主http://www.innewsmyanmar.com/feeds/posts/default的 RSS 提要链接

private Entry readEntry(XmlPullParser parser) throws XmlPullParserException, IOException {
        parser.require(XmlPullParser.START_TAG, ns, "entry");
        String title = null;
        String summary = null;
        String link = null;
        String id = null;
        String category = null;
        String updated = 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("content")) {
                summary = readSummary(parser);
            } else if (name.equals("link")) {
                link = readLink(parser);
            } else if (name.equals("id")) {             
                id = readId(parser);                
            } else if (name.equals("updated")) {
                updated = readUpdated(parser);
            } else if (name.equals("category")) {
                category = readCategory(parser);                
            } else {
                skip(parser);
            }
        }
        return new Entry(id, title, summary, link, category, updated);
    }

    // Processes link tags in the feed.
    private String readLink(XmlPullParser parser) throws IOException, XmlPullParserException {
        parser.require(XmlPullParser.START_TAG, ns, "link"); 
        String link = "";

        while (parser.next() != XmlPullParser.END_TAG) {
            if (parser.getEventType() == XmlPullParser.START_TAG) {
                continue;
            }
            String tag = parser.getName();          
            String relType = parser.getAttributeValue(null, "rel");
            if (tag.equals("link")) {
                if (relType.equals("alternate")) {                      
                        link = parser.getAttributeValue(null, "href");
                    break;
                }
            }               
        }  
        return link;
    }

当我跟踪readLink函数时,事务无法进入while (parser.next() != XmlPullParser.END_TAG)条件。

4

0 回答 0