- ベストアンサー
XSLTのtemplateタグで複数の名前空間を一括マッチさせる方法は?
- XSLTのtemplateタグを使って複数の名前空間を一括マッチさせる方法について教えてください。
- XMLスタイルシートのtemplateタグでは、myns接頭辞のタグのみ一括マッチする問題があります。どの接頭辞でもマッチさせる方法はありますか?
- また、もし方法が存在しない場合は、その旨の意見もお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
これでいいのかは自信がない ==============Q3477885-1.xml(適用するXML)====================== <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="Q3477885.xsl" type="text/xsl" ?> <foo> <bar xmlns="himajin100000">へんなやつ(終帝)</bar> <bar xmlns="himajin200000">キャット</bar> <bar xmlns="himajin300000">エンリケ</bar> <bar xmlns="himajin400000">マールバラ</bar> <baz xmlns="himajin500000">カプリコーン</baz> </foo> ==============Q3477885-1.xsl(スタイルシート)====================== <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" indent="yes" /> <xsl:template match="/"> <funya> <xsl:apply-templates /> </funya> </xsl:template> <xsl:template match="*[local-name() = 'baz']" /> <xsl:template match="*[local-name() = 'bar']"> <fuga><xsl:value-of select="./text()" /></fuga> </xsl:template> </xsl:stylesheet> =================Q3477885-2.xml(結果)================== <?xml version="1.0" encoding="UTF-8"?> <funya> <fuga>へんなやつ(終帝)</fuga> <fuga>キャット</fuga> <fuga>エンリケ</fuga> <fuga>マールバラ</fuga> </funya>
お礼
わざわざご丁寧にXML、XSLT、そして結果まで載せて頂いちゃって。。 一応すべてのの名前空間のタグに対して操作することは可能なようですね。 ただし、templateタグの中でfor-eachするときにも、select="*[local-name()=element]'"といった感じで記述しないとマッチしてくれないみたいですね・・。 しかし答えとしては、「無理」というのを期待していて、無理ならしょうがないかーあきらめようと思っていたので、うれしい結果に終わってよかったと思っています。 himajin1000000さん、ありがとうございました。