XSLT 用两个单引号替换单引号
XSLT replace single quotation sign with two single quotation signs
我正在编写 XSLT 代码来解析来自 XML 的数据。一个元素的值包含我需要转义的单引号。
我试图做这样的事情:
<xsl:variable name="text"><xsl:value-of select='desc_text'/></xsl:variable>
<xsl:value-of select="replace($text, ''', '''')"/>
但是我得到一个错误:
xsl:value-of : 无法编译 select 表达式 'replace($text, ''', '''')'
使用 <xsl:value-of select="replace($text, "'", "''")"/>
,在 XPath 2.0 及更高版本中您也可以使用(参见 https://www.w3.org/TR/xpath-31/#prod-xpath31-StringLiteral)<xsl:value-of select="replace($text, '''', '''''')"/>
.
如果你切换分隔符,它会更简单(也更容易阅读):
<xsl:value-of select='replace($text, "'", "''")'/>
P.S.
而不是:
<xsl:variable name="text"><xsl:value-of select='desc_text'/></xsl:variable>
做:
<xsl:variable name="text" select="desc_text"/>
我正在编写 XSLT 代码来解析来自 XML 的数据。一个元素的值包含我需要转义的单引号。 我试图做这样的事情:
<xsl:variable name="text"><xsl:value-of select='desc_text'/></xsl:variable>
<xsl:value-of select="replace($text, ''', '''')"/>
但是我得到一个错误: xsl:value-of : 无法编译 select 表达式 'replace($text, ''', '''')'
使用 <xsl:value-of select="replace($text, "'", "''")"/>
,在 XPath 2.0 及更高版本中您也可以使用(参见 https://www.w3.org/TR/xpath-31/#prod-xpath31-StringLiteral)<xsl:value-of select="replace($text, '''', '''''')"/>
.
如果你切换分隔符,它会更简单(也更容易阅读):
<xsl:value-of select='replace($text, "'", "''")'/>
P.S.
而不是:
<xsl:variable name="text"><xsl:value-of select='desc_text'/></xsl:variable>
做:
<xsl:variable name="text" select="desc_text"/>