以下の$ ID変数の前後に一重引用符を出力したいxsl:value-of xsl statment。
<xsl:value-of select="concat('process[@Ref=',$ID,']')"></xsl:value-of>
現在、印刷します
process@Ref=87799989
これを達成する方法を教えてください。
事前に感謝、ケシャブ
つかいます '
?
<xsl:value-of select="concat('process[@Ref='',$ID,'']')"></xsl:value-of>
編集:より良い解決策については、 ディミトレの答え を参照してください。
XPath 1.0:
組み込みエンティティ'
および"
を使用できます
XSLT 1.0:
または、$Q
および$APOS
変数を定義することもできます(コンテンツ(リテラル "またはリテラル '文字)を、select
属性ではなく、xsl:variable
の本体に配置します)。
XPath 2.x(これはXSLT 2.xおよびXQuery 1.xも意味します)
隣接する2つのアポストロフィを入力してアポストロフィをエスケープし、隣接する2つの引用符を入力してクォートをエスケープしますXPath 2.0言語で定義されている
Dimitreの答えを拡張するには、XSLTでこのソリューションを使用できます。
<xsl:variable name="apos">'</xsl:variable>
<xsl:value-of select="concat('process[@Ref=',$apos,$ID,$apos,']')"></xsl:value-of>
<xsl:value-of
select="concat('process[@Ref='',$ID,'']')"></xsl:value-of>
これは私には機能しません。私の解決策は次のとおりです。
<xsl:value-of select="concat("process[@Ref='",$oidConstant,"'")"></xsl:value-of>
簡単な例は
<xsl:variable name="varTitle" select="title" />
<xsl:variable name="APOS">'</xsl:variable>
<xsl:value-of select="translate($varTitle, 'any text', $APOS)"/>
これにより、タイトルの「任意のテキスト」が「」に置き換えられます。