2011-05-29

GAE/J で com.google.gdata.util.ParseException: Invalid root element とか

Blogger には、個別投稿フィードなるものがあるので、
GoogleService gs = new GoogleService("blogger", "kuribo-japanesebloggers-1");
URL feedUrl = new URL("http://www.blogger.com/feeds/6813881014503035656/posts/summary/552385261504346376");
Feed feed = gs.getFeed(feedUrl, Feed.class);
Entry entry = feed.getEntries().get(0);
GAE/J で GoogleService を使って Blogger の個別投稿フィードを読み込ませようとしたら、

com.google.gdata.util.ParseException: Invalid root element, expected (namespace uri:local name) of (http://www.w3.org/2005/Atom:feed), found (http://www.w3.org/2005/Atom:entry

とかって言われてへこむ。なんだなんだと調べてみると、Blogger の個別投稿フィードは、通常の投稿フィード
<feed>
  <id/>
  <updated/>
  <title/>
  <subtitle/>
  <link/>
  <author/>
  <generator/>
  <entry/>
</feed>
のような構成ではなく、上記 entry 部からいきなり始まる形で、その投稿以外のブログ情報が全く掲載されないようになっているみたい。

ブログ ID +ポスト ID で投稿のタイトルや URL を取得しようと思っていたのが、ちょっぴり挫折。URLFetch して、XML のパーサを使うか、正規表現でゴリゴリするか、迷い中…。

No comments:

Post a Comment