HTML ページ用に変換されるテキスト ブロックを解析するために、以下の XSLT テンプレートを作成しました。このテンプレートは複数の場所で使用されていますが、指定した文字が常に正常に変換されません。例は次のとおりです。
「2」に「助け」が欲しいと思い、さらに「4」を探し続けますが、見つけたのは「空」だけです。
その結果、私は「2人」に「助けてもらいたい」と思い、「もっと」を探し続けましたが、見つけたのは「空」だけでした。
何かご意見は?
<xsl:template name="PreserveQuotations">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="contains($text,'“')">
<xsl:value-of select="substring-before($text,'“')"/>
<xsl:text>"</xsl:text>
<xsl:call-template name="PreserveQuotations">
<xsl:with-param name="text">
<xsl:value-of select="substring-after($text,'“')"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($text,'”')">
<xsl:value-of select="substring-before($text,'”')"/>
<xsl:text>"</xsl:text>
<xsl:call-template name="PreserveQuotations">
<xsl:with-param name="text">
<xsl:value-of select="substring-after($text,'”')"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>