- - PR -
XSLTで特定のグループ要素以外は全て無視したい
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-05-29 14:36
MMXさん、BBSハンドル名さん、ほむらさん、井上孝司さん、
ご返答頂きありがとうございました。 大変参考になりました。感謝しております。m(__)m 後からXML文書の要素が変化することについては、私個人としてはXMLの長所だと思っていたので、XSLTのデフォルトテンプレートルールについては違和感を感じます。 それはさておき、、、 みなさんのご助言をもとに、とりあえず解決策を決めましたのでご報告いたします。 ■スタイルシート: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <xsl:call-template name="EditMainElement"/> </xsl:template> <xsl:template name="EditMainElement"> <xsl:variable name="PATH" select="/main"/> <xsl:for-each select="$PATH/member"> <xsl:value-of select="."/> </xsl:for-each> </xsl:template> </xsl:stylesheet> matchでテンプレート処理を実行するのではなく、全て名前付きテンプレートとして定義し、その冒頭で処理対象を変数に取得します。それをfor-eachでまわしてやれば希望通り、他の要素の構成が変わってもスタイルシート側は修正の必要がありません。 pull型というやつでしょうか。 |
|
投稿日時: 2003-05-30 10:40
ども、ほむらです、
いわゆる、おふとぴというやつです。 ん〜、なんとなく、かみ合っていない気がしますけれども^^;;; というよりも、考え方は皆さんと一緒だと思うのですが・・・・ 僕の表現がわるいのかな? ------------- 僕としても要素の追加がされたり順序が変わったりしても もともとのスタイルシートを作り直すとかいうのは考えたこと無いです。。。 修正くらいにとどめるようにしています。 時々めんどくさくなって作り直してしまいますが(笑 なんていうか*XML文書の要素が変化すること*の認識違いだと思うのですが 要素の名前がかわるとか、いままで <node>value</node> でかいていたものが <node value="" /> になるとか、後は削除されたとか。 っていうのが僕の中での変化です。 要素は追加されて当然、内容(コンテント)に変更があるのも自然ととらえているので このあたりは、*変化*として認識してなかったりして 極端な例としては <date value="Thu, 1-Jan-1980 00:00:00 GMT" /> と書いていたものが <date value="1980-1-1 00:00:00" /> となっても、変化の内には入っていないということです |