2017-07-31 5 views
1

YouTubeからの定期購読用のOPMLファイルを読むためのコードをいくつか用意しました。コードはInforma RSS hereからInforma RSS - クラスにエラーがありません。何が間違っていますか?

私がクラス欠損エラーを得るコードを実行するときから来る。この唯一の参考資料は、DOM2.0に更新されたので、javaDOMのバージョンが間違っている可能性がありますが、修正する方法を教えてくれなかったことを示唆しています。これは古いものを使用すると言い、javaDOMバージョン0.7 ?

私はNetbeansのために図書館にJavaDOM 0.7をインストールしたとき、私はそれを実行するか、コンパイルしようと、それが失敗するまで今すぐエラーが消え....

今、私はどこで行くことを知りません。私は今、数日間、これで苦労してきた

、私の主な問題は、OPMLファイルはすべて同じタグ情報を持っている、すなわち

<opml version="1.1"> 
<body> 
    <outline text="YouTube Subscriptions" title="YouTube Subscriptions"> 
      <outline text="PersonOne" title="PersonOne" type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCuNfoe7ozooi0LZgp6JJS4A" /> 
      <outline text="PersonTwo" title="PersonTwo" type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCVErFSr-jdTa_QE4PPSkVJw" /> 
      <outline text="Person Three" title="Person Three" type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCittVr8imKanO_5KohzDbpg" /> 
     </outline> 
    </body> 
</opml> 

..and方法についての十分な情報がありませんJavaでこのタグの組み合わせを処理するために、私は3日間探していました...

答えて

0

Informa 0.7.0-alpha2は、YouTubeからOPMLファイルとしてエクスポートされたサブスクリプションを読むことができませんでした。 OPMLは、各RSSサブスクリプションに対して複数のoutline子要素を含む1つのoutline要素で構成されます。

InformaのOPMLParserクラスは、body要素内のoutline要素のみを調べました。この要素は、ほとんどのOPMLサブスクリプションリストがどのように構成されているかを示しています。それは子outlineの要素の中にoutlineを探しませんでした。

代替ソリューションとして、Java XML解析ライブラリXOM 1.12.10を使用しました。

try { 
    // create an XML builder 
    Builder bob = new Builder(); 
    // build an XML document from the OPML file 
    Document doc = bob.build(new File("subscription_manager.xml")); 
    // get the root element 
    Element opml = doc.getRootElement(); 
    // get root's body element 
    Element body = opml.getFirstChildElement("body"); 
    // get body's outline element 
    Element outline = body.getFirstChildElement("outline"); 
    // get outline's child outline elements 
    Elements outlines = outline.getChildElements("outline"); 
    // loop through those elements 
    for (int i = 0; i < outlines.size(); i++) { 
     // display each RSS feed's URL 
     System.out.println(outlines.get(i).getAttributeValue("xmlUrl")); 
    }    
} catch (ParsingException | IOException ex) { 
    System.out.println(ex.getMessage()); 
} 

このコードはこれらの輸入しています:

import java.io.File; 
import java.io.IOException; 
import nu.xom.Builder; 
import nu.xom.Document; 
import nu.xom.Element; 
import nu.xom.Elements; 
import nu.xom.ParsingException; 
ここではYouTubeが生成OPMLファイルを読み込むためのコードです
関連する問題