我正在编写XSLT代码来解析XML中的数据。一个元素的值包含我需要转义的单引号。 我试图做这样的事情:
<xsl:variable name="text"><xsl:value-of select='desc_text'/></xsl:variable>
<xsl:value-of select="replace($text, ''', '''')"/>
但是我收到一个错误: xsl:value-of:无法编译选择表达式'replace($ text,''','''')'
答案 0 :(得分:1)
使用<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, '''', '''''')"/>
。
答案 1 :(得分:0)
如果切换分隔符,它可以更简单(也更容易阅读):
<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"/>