現在作業中のAndroidアプリの場合、RSSフィードから生のXMLデータを解析して表示できるようにしたいと考えています。問題のRSSフィードでは、Feedburnerを使用して公開しています。 Google-fuはこれまでのところ、生のXMLを取得する方法については何も教えてくれませんでした。
URLにfmt = xmlを追加してみてください。例: http://feeds.feedburner.com/blogname?fmt=xml 。
IOS SDKでXPathQueryを使用して応答からデータを抽出する他の奇妙な問題があります。
GoogleからChromeのようにURLを更新すると、未加工のxmlが取得されます。
view-source:http://feeds.feedburner.com/TheAppleBlog
GoogleではChromeここで説明する両方の方法を同時に適用する必要があるかもしれません(?format=xml
およびview-source:
):
view-source:http://feeds.feedburner.com/TheRegardingBlog?format=xml
Feedburnerフィードはブラウザに未加工のXMLを送り返しますが、XMLマークアップをスタイルするスタイルシートも送信するため、ブラウザはXMLをスタイル付きコンテンツとしてレンダリングします。
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?>
ただし、提供されるデータはXMLです。
したがって、?format=xml
のようなクエリパラメータを追加する必要はまったくありません。これらのフィードのいずれかに対する要求からの応答を記録するか、ソースを表示すると、XMLが表示されます。
まだ理解していない人のために:
生のRSSフィードを受信するために、ヘッダーなしでHTTPリクエストを送信します(つまり、ブラウザーからリクエストを送信しません)。
@Shimmy @Jordan実際には機能しますが、ページにアクセスするときにWebページのソースを確認すると、通常のアクセスでHTMLページが提供され、?fmt = xml param提供とXMLフィードでアクセスすることに気付くでしょう。
XMLフィードもXSLスタイルシートを使用してフォーマットされ、xmlパラメーターを使用しなくても同じ外観が得られるため、結果はブラウザーで同じままです。
?format=xml
を使用して、フィードの生のXMLを取得する必要があります。実際、フィードXMLを取得する両方の方法が機能します。しかしいつもではない。 ?format=xml
ただし、試したすべてのフィードで機能しましたが、?fmt=xml
では機能しません。 View feed XMLボタンが使用可能なフィードはfmt
を使用するため、format
はレガシーパラメーターです。
多くの場合、FeedBurnerはXMLフィードを直接提供します(RSSをきれいにするために使用されるスタイルシートと混同しないでください)。
それは非常に簡単です、ここでnを検索した後、私は最終的に1つの解決策を見つけました
http://www.blogger.com/feeds/blogId/posts/default
注:ブログIDを把握するには、まずBloggerにサインインします。次に、IDを検索するブログを選択し、その名前をクリックします。
投稿、設定、またはテンプレートページのいずれかから、アドレスバーのURLを見ると、ブログのID番号を見つけることができます。アドレスの最後に、XがブログのIDを表すblogID = XXXXXXと表示されていることがわかります。
以下の{blogname}/feeds/posts/default?alt = rssとして、ブロガーのFeedburnerの元のフィードURL
次に、フラッシュチュートリアルの http://alaashaker.wordpress.com/2008/09/09/build-your-own-flash-rss-reader-tutorial-flash-actionscript-30/ に変換します
「未燃」RSSフィードの元のバージョンは、Feedburnerフィードのソースコードを表示する(またはダウンロードしてテキストファイルとして表示する)ことで抽出できます。元のフィードは、<channel>要素の<link> ... </ link>タグの間に提供されます。 JavaScriptまたはPHP XML DOM検索を使用して抽出することもできます。