Presented by Nishishi via Movable Type. Last Updated: 2007/11/04. 05:20:47.

XSLT・XPathで煮詰まる

XMLファイルをブラウザで整形して表示させるには、XSLTを用意する必要があるわけですけども、このXSLT、なかなか奥が深くてややこしいです…。(^^;;;

XMLでデータを返してくれるWebサービスを利用するとき、XMLを自前のプログラムで解析して利用することもできますが、返ってきたXMLをそのまんま利用して、XSLTを使って表示させることもできます。

前者の場合、自由度の高い利用ができますが、自分が運用するサーバに負荷がかかります。後者の場合、前者の場合ほどの自由度はありませんけど、処理するのはクライアントPCなので、自分のサーバに負荷はあまりかかりません。

AmazonのWebサービスの場合、Amazon側のサーバで、XSLTを解釈した結果(の文字列)を返してくれるようにすることもできます。こうすると、負荷が掛かるのはAmazon側のサーバということになって、自分のサーバも、それを利用するクライアントも、負荷はかからないことになります。これ、なかなかいいですね。

で、自前のプログラムでXMLを解析するよりかは、XSLTを記述する方が簡単なのかも知れませんが(^^;)、XSLTはXSLTで、なかなか大変です…。
今日、かなーり煮詰まりました。XSLTで…。^^;;;
XSLTで、というか、煮詰まったのはXPathだったんですが。

「省略された名前空間を持つエレメント」を指定したい場合。
階層構造そのまんま

myfavorites/dvd/anime/sakura/

…みたいに指定はできず、

*[local-name()='myfavorites']/*[local-name()='dvd']/*[local-name()='anime']/*[local-name()='sakura']

…みたいな、とんでもない指定をするしかなかったり…。
もうちょっと楽に(というか見やすく)ならんもんなのか。^^;;;

完全に解決に至る前に、帰宅時間になっちゃったんですけど、一応上記の方法で解決はできるっぽいので(それが最良なのかどうかイマイチ分からんのですが)、明日はそれを使って実験してみます。

むひょー。

この日記へのコメントはお気軽に! コメント数:0 トラックバック数:0

コメント

コメント数: 0件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。

保存しますか?



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

投稿後、投稿できていないように見えることがあります。ブラウザのキャッシュが読まれているだけですので、ページを再読込すれば(=たいてい[F5]キーを押せば)投稿内容が反映されていることが確認できるはずです。連続投稿を試す前にご確認下さい。(^^;)

トラックバック

このエントリーへのトラックバックURLを表示するにはここをクリック
※スパム防止のため、トラックバックURLは別ウインドウで表示します。(JavaScriptが有効でないと表示されません。)