2004年11月15日 (月)

RSS の余計なスペースはえぐるように取るべし

ご存知 .Mac Tips 御用達のけろちゃんが、新しいネタを下さいました。表題のとおりです。詳しくは本文で。

11月16日 追記あり


iBlog 1.4.0 までの RSS のテンプレート FeedPage.txt のオリジナルは例えば

ブログのタイトル
<title> <![CDATA[<$BlogName$>]]> </title>
ブログの説明
<description> <![CDATA[<$BlogDescription$>]]> </description>
エントリのタイトル
<title> <![CDATA[<$EntryTitle$>]]> </title>
エントリの URL
<link> <![CDATA[[_$DocumentRoot$]/<$EntryLink$>]]> </link>
エントリの内容
<description> <![CDATA[<$EntryAbstractOrBody$>]]> </description>
というようになっています。

よーく見て下さい。開始タグと <![CDATA[、]]> と終了タグの間にスペースが入っています。これ、とっても変です。スペースを取り除いて次のようにしましょう。

ブログのタイトル
<title><![CDATA[<$BlogName$>]]></title>
ブログの説明
<description><![CDATA[<$BlogDescription$>]]></description>
エントリのタイトル
<title><![CDATA[<$EntryTitle$>]]></title>
エントリの URL
<link><![CDATA[[_$DocumentRoot$]/<$EntryLink$>]]></link>
エントリの内容
<description><![CDATA[<$EntryAbstractOrBody$>]]></description>

今まで「RSS の link 要素を CDATA で囲むのはやめませんか」や「Bulkfeeds の Similarity Search に iBlog を対応させる」で link 要素の中の <![CDATA[ ]]> は取ってしまえと書いてきましたが、もしかするとこのスペースを取り去るだけでよくなるかもしれません。

けろちゃん、試してもらえますか?

幾つかのサイトを観察したところ、FireFox 1.0 のライブブックマーク機能でうまく表示できるのは次のようになっています。

値にCDATA CDATA 前後のスペース ライブブックマークの状態
link 要素 ある ある エントリを取得できない
ない エントリを取得できる
ない -
title 要素 ある ある エントリのタイトルを取得できない
ない エントリのタイトルを取得できる
ない -
11月16日 追記

実例がなかったので不明としましたが実験してわかりました。link 要素の値を CDATA としたとき、開始/終了タグのと値の狭間にスペースを入れないでおけばライブブックマークでエントリを取得できます。


Posted: 23:50    | Comment | Trackback


以下、類似エントリです。