ブロガーの RSS からリンク タグを解析できないという問題が発生しました。1 つのタグごとに 6 つのリンク タグがあるためです。それが問題を抱えた理由です。次のコーディングで解析しようとしましたが、失敗しました。
ブロガーからの RSS フィード リンクは次のとおりですhttp://www.innewsmyanmar.com/feeds/posts/default
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)状態に入ることができません。