うまくいえば簡単に質問しますが、これをどのように整えて実行するにはどうすればいいですか?XSLTフォーム入力値属性の一重引用符と二重引用符?
<input type="rad" name="RadGroup" value="<xsl:value-of select="productOptionInfo"/>" />
私は基本的に属性値の中に値を入れたいと思っていますが、どちらも二重引用符が必要です。
アイデア?
感謝
XSLTでうまくいえば簡単に質問しますが、これをどのように整えて実行するにはどうすればいいですか?XSLTフォーム入力値属性の一重引用符と二重引用符?
<input type="rad" name="RadGroup" value="<xsl:value-of select="productOptionInfo"/>" />
私は基本的に属性値の中に値を入れたいと思っていますが、どちらも二重引用符が必要です。
アイデア?
感謝
XSLTでは、属性内の値を使用するためのショートカットがあります:それは、使用する別のオプションは、あり
<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>
あなたがかもしれません内部では一重引用符を使用し、二重引用符を使用する場合は外部から引用符を使用してください。
また、XMLの仕様は言う:
は、属性値が「
'
」として表現することができる単一引用符と二重引用符、アポストロフィまたは単一引用符文字('
)の両方を含むようにするために、そしてダブル「"
"として引用符()"
使用カーリーブラケット表記:。
<input type="rad" name="RadGroup" value="{productOptionInfo}" />
ありがとうございました、あなたとOdedの両方が私に同時に正しい答えをくれました! – Mac
これは間違っている:
<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>
命令で生成する必要があります。
私はそれをクリアしてくれてありがとう、Dimitre :) – Mac
良い質問、+1。現時点で選択されている回答が間違っている理由と2つの正しいXSLT 1.0ソリューションともう1つのXSLT 2.0ソリューションについての解説を参照してください。 :) –