質問 |
||
| QNo.4045055 | xsl:variableについて | |
|---|---|---|
| 質問者:masaota56 |
お世話になります。xsl:variableについて質問です。 xsl:elementのnameを動的に指定したく、次のようにしました。 FireFox3 Beta 5にて、innerHTMLをtextareaに貼り付けて確認しました。 xml <testNode>aaa</testNode> xsl <xsl:variable name="el"><xsl:value-of select="name(.)"/></xsl:variable> <xsl:element name="$el">aiueo</xsl:element> こうすると、 aiueo のみ出力されました。希望する出力は <testNode>aiueo<testNode> です。 xsl:variableの使い方が間違っているのでしょうか?先程からずっとこれに悩んでいます。。。 よろしくお願いします。 |
|
困り度:
|
||
| 質問投稿日時: 08/05/23 22:14 |
||
回答良回答20pt |
|
| ANo.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> |
|---|---|
| 回答者:himajin100000 | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/05/23 23:59 |
|
| |
| この回答へのお礼 | なるほど、中かっこを使わないと駄目だったんですね。 他のサイトでは中かっこ無しのサンプルがあったのですがあれは一体・・・^^; なにはともあれ助かりました、ありがとうございました。 |