使用できますが、このようにスラッシュを先頭に追加'<xsl:value-of select="." />'
して、すべての一重引用符アポストロフィをエスケープする必要があります <alldata>
\'
使用できます"<xsl:value-of select="." />" or "<xsl:value-of select='.' />"
が、二重引用符が含まれる可能性がある場合は<alldata>
、次のようにそれらもエスケープする必要があります\"
最初のものを使用したい場合、これは一重引用符をエスケープします:
<xsl:template name="escapeSingleQuotes">
<xsl:param name="txt"/>
<xsl:variable name="backSlashSingleQuote">\'</xsl:variable>
<xsl:variable name="singleQuote">'</xsl:variable>
<xsl:choose>
<xsl:when test="string-length($txt) = 0">
<!-- empty string - do nothing -->
</xsl:when>
<xsl:when test="contains($txt, $singleQuote)">
<xsl:value-of disable-output-escaping="yes"
select="concat(substring-before($txt, $singleQuote), $backSlashSingleQuote)"/>
<xsl:call-template name="escapeSingleQuotes">
<xsl:with-param name="txt" select="substring-after($txt, $singleQuote)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="$txt"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
次のようにコードで使用できます。
var l_allDataValue = '<xsl:call-template name="escapeSingleQuotes">
<xsl:with-param name="txt" select="."/>
</xsl:call-template>'