• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:xsl:variableについて)

xsl:variableの使い方について

このQ&Aのポイント
  • xsl:variableを使用してxsl:elementのnameを動的に指定しようとしていますが、うまくいきません。希望する出力が得られず、どのように修正すれば良いか悩んでいます。
  • FireFox3 Beta 5でのテスト結果から、xsl:elementのnameをxsl:variableで指定する方法が間違っている可能性があります。
  • 要望する出力は<testNode>aiueo<testNode>ですが、現在のコードではaiueoのみが出力されてしまいます。xsl:variableの使い方に誤りがあるかもしれません。

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

  • ベストアンサー
回答No.1

============hoge.xml============== <testNode>aaa</testNode> =====================fuga.xsl============== <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match ="/"> <p> s<xsl:value-of select="name(.)" />s <!-- name(.)は何もありません。match="/testNodeとかなら値は出てくるだろうけど。"--> <xsl:apply-templates /> </p> </xsl:template> <xsl:template match="testNode"> <xsl:variable name="el"><xsl:value-of select="name(.)"/></xsl:variable> <!-- 7.6.2 Attribute Value Templates In an attribute value that is interpreted as an attribute value template, such as an attribute of a literal result element, an expression can be used 【by surrounding the expression with curly braces ({}). 】 {}で括らないでテストしたら$は要素名に使えないって怒られた。 --> <xsl:element name="{$el}">aiueo</xsl:element> </xsl:template> </xsl:stylesheet> ============= 出力結果 <?xml version="1.0" encoding="utf-8"?> <p> ss <testNode>aiueo</testNode> </p>

masaota56
質問者

お礼

なるほど、中かっこを使わないと駄目だったんですね。 他のサイトでは中かっこ無しのサンプルがあったのですがあれは一体・・・^^; なにはともあれ助かりました、ありがとうございました。

関連するQ&A