1

ブロガーの 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)状態に入ることができません。

4

0 に答える 0