0

Web クロールを実行して、多くの html および xml ページを収集しました。私の目的は、それらからすべての Rss/Atom フィードを抽出することです。多くのサイトがヘッダーのコンテンツ タイプとして単に「text/xml」を使用しているため、他の種類の xml からのフィードを識別できないことに気付きました。だから私はこのコードを書きました:

public boolean isFeed(String content){
    Document doc = Jsoup.parse(content);
    Elements feed = doc.getElementsByTag("feed");
    Elements channel = doc.getElementsByTag("channel");
    if(feed!=null){
        if(!feed.isEmpty()){
             return true;
        }
    }
    if(channel!=null){
        if(!channel.isEmpty()){
             return true;
        }
    }
    return false;
}

ここに欠けているものはありますか?何か問題はありますか?

4

1 に答える 1

1

本格的な XML パーサーを使用してドキュメントを解析します。コンパイルできない場合、それは Atom ではありません。次に、ドキュメント (ルート) 要素を取得します。そうでない場合<feed xmlns="http://www.w3.org/2005/Atom">、それは Atom ではありません。もちろん、適切な API を使用してタグ名と名前空間を読み取り、文字列を比較しないでください。

同様の方法で RSS を検出します。または、Romeライブラリを使用してドキュメントを解析します。

于 2012-10-19T17:27:30.497 に答える