2011-01-03 19 views
6

うまくいえば簡単に質問しますが、これをどのように整えて実行するにはどうすればいいですか?XSLTフォーム入力値属性の一重引用符と二重引用符?

<input type="rad" name="RadGroup" value="<xsl:value-of select="productOptionInfo"/>" /> 

私は基本的に属性値の中に値を入れたいと思っていますが、どちらも二重引用符が必要です。

アイデア?

感謝

XSLTで
+0

良い質問、+1。現時点で選択されている回答が間違っている理由と2つの正しいXSLT 1.0ソリューションともう1つのXSLT 2.0ソリューションについての解説を参照してください。 :) –

答えて

10

は、属性内の値を使用するためのショートカットがあります:それは、使用する別のオプションは、あり

<input type="rad" name="RadGroup" value="{productOptionInfo}" /> 

xsl:attribute

<input type="rad" name="RadGroup"> 
    <xsl:attribute name="value"> 
     <xsl:value-of select="productOptionInfo"/> 
    </xsl:attribute> 
</input> 
+0

オハイオ州オクラホマ、私はそれがより明確になった、ありがとう)を参照してください。 – Mac

+0

@マック - 私はいくつかのオプションを追加:) – Oded

+0

@Downvoter - Care to comment? – Oded

0

あなたがかもしれません内部では一重引用符を使用し、二重引用符を使用する場合は外部から引用符を使用してください。

また、XMLの仕様は言う:

は、属性値が「&apos;」として表現することができる単一引用符と二重引用符、アポストロフィまたは単一引用符文字(')の両方を含むようにするために、そしてダブル「&quot; "として引用符()"

3

使用カーリーブラケット表記:。

<input type="rad" name="RadGroup" value="{productOptionInfo}" /> 
+0

ありがとうございました、あなたとOdedの両方が私に同時に正しい答えをくれました! – Mac

6

これは間違っている:

<input type="rad" name="RadGroup" 
     value="<xsl:value-of select='productOptionInfo'/>" /> 

と、これは間違っている、あまりにも

XMLで
<input type="rad" name="RadGroup" 
     value='<xsl:value-of select="productOptionInfo"/>' /> 

属性の値として(エスケープ)マークアップを持つように構文エラーです。 W3のXML仕様 - hereおよびhereを参照してください。

これを行うには、2つの正しい方法は、(AVTまたはattribute value templates呼ばれる)ある:XSLT 2.0一つの

<input type="rad" name="RadGroup" value="{productOptionInfo}"/> 

<xsl:attribute name="input"> 
    <xsl:value-of select="productOptionInfo"/> 
</xsl:attribute> 

を書き込むことが許可され

<xsl:attribute name="input" select="productOptionInfo"/> 

上記の最初の方法は、要素の名前が静的に(事前に)知られている場合、最も短く読みやすいです。

要素名が静的に知られていない場合は、という<xsl:element>命令で生成する必要があります。

+0

私はそれをクリアしてくれてありがとう、Dimitre :) – Mac

関連する問題