閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

XSLT

RSS その他を HTML に変換するために、 XSL を書いています。ものの見事に忘れており、何かする度に Google にアタックを繰り返しています……。多少は思い出してきたけれど、ほんとにめんどくさい言語ですね。

RSS 自体も色々変化があったらしく、 RSS2.0 なんて新しいバージョンなんかもできているようで、ついていくだけでいっぱいいっぱいです。 1.0 と別に XSL 用意しなければならないのが面倒。

最近の RSS には全文を記述するため(なのかどうかは知らない)の content:encoded なんていう要素もできているらしい。はてなだと、 RSS に全文含めるような設定にしておくと HTML 毎 content:encoded 要素に吐き出すらしいので、 HTML もエスケープしないで出さなければならない模様。でもこれは、 xsl:value-of 要素の属性として disable-output-escaping を宣言して値を "no" にしてやれば事足りるようで、簡単でした。

しかし Firefox というか Mozilla ではこの属性を無視するらしく、一寸はまってしまいました。→楽天が運営するポータルサイト : 【インフォシーク】Infoseek参照。現状動かないのは仕方ない、と。

まあ、今自分がやろうとしているのは XML(RSS) + XSLT = HTML といった変換作業をサーバ側でやらせようというもので、そちらでは正常に HTML はエスケープされずに出力していたので問題はないのですが。サーバで MSXML 使っているんだったら XSLT のチェックも IE でやるべきか……。