• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:XSLTのtemplateタグで複数の名前空間を一括マッチさせたい)

XSLTのtemplateタグで複数の名前空間を一括マッチさせる方法は?

このQ&Aのポイント
  • XSLTのtemplateタグを使って複数の名前空間を一括マッチさせる方法について教えてください。
  • XMLスタイルシートのtemplateタグでは、myns接頭辞のタグのみ一括マッチする問題があります。どの接頭辞でもマッチさせる方法はありますか?
  • また、もし方法が存在しない場合は、その旨の意見もお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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>

ggaogg
質問者

お礼

わざわざご丁寧にXML、XSLT、そして結果まで載せて頂いちゃって。。 一応すべてのの名前空間のタグに対して操作することは可能なようですね。 ただし、templateタグの中でfor-eachするときにも、select="*[local-name()=element]'"といった感じで記述しないとマッチしてくれないみたいですね・・。 しかし答えとしては、「無理」というのを期待していて、無理ならしょうがないかーあきらめようと思っていたので、うれしい結果に終わってよかったと思っています。 himajin1000000さん、ありがとうございました。

関連するQ&A

専門家に質問してみよう