にしし ふぁくとりー(西村文宏 個人サイト)

Presented by Nishishi via Movable Type. Last Updated: 2015/09/22. 13:24:23.

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件

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

保存しますか?



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

※投稿内容は、実際にページ上に掲載される前に、管理者によって確認される設定にしている場合があります。その場合は、投稿後にその旨が表示されます。たいてい1~2日以内には表示されるはずですので、気長にお待ち願います。m(_ _)m

トラックバック

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

--- 当サイト内を検索 ---