Nanashi-softプログラマ専用RSSを付けてみる


◇RSSを付けてみる ~RSSを解析してみる~

○手本を探す

この手の仕様は複雑で,読んでも良く分からない場合が多い
勝手な解釈を行っても,実際にアプリで読み込ませるとうまく表示されない事が多い

そこで,実際にRSSを表示しているサイトを見て,それを模写するのが好ましい
丁度このホムペのブログで表示が可能なので,それを模写してみる

http://blog.livedoor.jp/nanashisoft/index.rdf
※注意:開いてソースを見ること

○解析する

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">

ここまでは定型だと思われる

<channel rdf:about="http://blog.livedoor.jp/nanashisoft/">
<title>Nanashi-soft</title>
<link>http://blog.livedoor.jp/nanashisoft/</link>
<description>Nanashi-softの活動状況とか雑談です</description>

サイト情報といったところか,この辺りは適当にセットすると良いだろう

<dc:language>ja</dc:language>

次が言語定義,これは必ずセットしないと表示がおかしくなるだろう

<admin:generatorAgent rdf:resource="http://blog.livedoor.com/?v=2.0"/>

これはRSSテキストを生成したアプリ名なので,省略して良いだろう

<items>
 <rdf:Seq>
  <rdf:li rdf:resource="http://blog.livedoor.jp/nanashisoft/archives/50776223.html"/>
...省略...
 </rdf:Seq>
</items>
</channel>

これはソース元のURL群になる
実際RSSリーダで見ると,この数だけリンクが表示されている

<item rdf:about="http://blog.livedoor.jp/nanashisoft/archives/50776223.html">

上で定義したrdf:resourceと一致するURLを記述し、その内容をこれから定義すると言う意味だろう

<title>ロケイシャスピアス</title>
<link>http://blog.livedoor.jp/nanashisoft/archives/50776223.html</link>
<description>やっと獣人古銭が75枚貯まった(^_^)v
...省略...
</description>

このタイトルが、RSSリーダーで表示される表題になっている
そしてまたリンクURLが書かれている、同じ事を何度も書きすぎでムダだと思うな……
descriptionで概要を定義する

<dc:creator>nanashisoft</dc:creator>
<dc:date>2006-07-30T02:51:45+09:00</dc:date>
<dc:subject>FFXI</dc:subject>

これは生成時のデータなので,省略しても問題無いだろう

<content:encoded><![CDATA[やっと獣人古銭が75枚貯まった(^_^)v<br>
...省略...
]]></content:encoded>

これはどうも内容そのもののようだ
内容までRSSに載せたら,サイト見に来る必要が無くなるからカットする

</item>

ここまでで1つのセクションが終了
これをrdf:resourceで定義した個数分だけ記述するのだろう

</rdf:RDF>

記述が終わったら,これで閉じて終了


TOPプログラマ専用RSSを付けてみる

Melonbooks DL