遇到无法解析博客 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)条件。