2004年04月06日
RSS内の実体参照
こちらでHTML::RSSAutodiscoveryの紹介したけど、実は最近までこのモジュール知らなかったので、自分でも似たようなモジュール書いてた。
ここギコのケータイ版で1ヶ月ほど前から密かにニュースサイトのRSSリーダ置いてるんだけど、それ用に作った奴。
で、それの開発中に原因に気付いた、長年の疑問だった事。
こちらで紹介したfirefoxのRSSReaderで、dh's memorandaがFeedできないと書いたけど、その原因が判りました。
perlのXML::RSS::Parserに食わせて出るエラーを確認したところ、XMLとして解析できない実体参照が含まれているため、エラーが出ているみたいです。
XMLとして使える実体参照は、DTDとかで定義しない限りこれだけのはずですが、HTMLではこれだけなので、XMLの記述の中にそのままこれが入ってしまうと、パースできなくてエラーになるようです。
よって、このような実体参照が入る場合は、XMLに埋め込む際に&を&と変換してやるか、全体を<![CDATA[ ]]>で囲んでやるか、実体参照を数値参照によるものに変換してやる必要があります。
実際、Movable TypeのデフォルトのRSS用テンプレートで運用していると、
<description><$MTEntryExcerpt encode_xml="1"$></description>
という感じの記述になっていて、このencode_xml属性によりXMLで使えない実体参照が含まれていると<![CDATA[ ]]>で囲んでくれるようですが、RSSでエラーが出る場合はそれが外れているのではないかと思います。
Related query words in Google & Yahoo
Related Books from Amazon
Trackback to this entry
TrackBack URL :
Trackbacks
RSS1.0事始め
Excerpt: 調べてみると、結構なかなか難しかったりで。 RSS1.0をチョイスした訳です。こちらを参考にさせていただいて。でも、それはほんの始まりに過ぎなかった...
Weblog: 今感じていること
Tracked: 2007年06月19日 19:36
Excerpt: 調べてみると、結構なかなか難しかったりで。 RSS1.0をチョイスした訳です。こちらを参考にさせていただいて。でも、それはほんの始まりに過ぎなかった...
Weblog: 今感じていること
Tracked: 2007年06月19日 19:36
>firefoxのRSSReaderで、dh's memorandaがFeedできない
ATOMはちゃんと<![CDATA[ ]]>されているみたいなので、RSSReaderでもうまく読み込めました。
http://uva.jp/dh/mt/atom.xml
Post a comment
![[ここギコ!]](http://kokogiko.net/logo.png)



・国連人権委、アイヌ・琉球文化の保護を日本に勧告(ほるほる)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(okumula)
・人員がクラスタ化できている職場と言うのはうらやましい そろそろ限界です(「ま」のつく人)
・もうAmazonクレジットカードは使いません...楽天カード一本で。(名無し)
・ジオメディア忘年会 新年会から始まり東京1、2、関西と続いたジオメディア2008の締めくくり(ぴかぴか)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(kokogiko)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(かやま)
・なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(大阪府民)
・なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(kokogiko)