XSLT用两个单引号替换单引号

时间:2017-07-13 10:38:31

标签: xml xslt replace escaping quotation-marks

我正在编写XSLT代码来解析XML中的数据。一个元素的值包含我需要转义的单引号。 我试图做这样的事情:

<xsl:variable name="text"><xsl:value-of select='desc_text'/></xsl:variable>
<xsl:value-of select="replace($text, '&apos;', '&apos;&apos;')"/>

但是我收到一个错误: xsl:value-of:无法编译选择表达式'replace($ text,''','''')'

2 个答案:

答案 0 :(得分:1)

使用<xsl:value-of select="replace($text, &quot;'&quot;, &quot;''&quot;)"/>,在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, "&apos;", "&apos;&apos;")'/>

P.S。

而不是:

<xsl:variable name="text"><xsl:value-of select='desc_text'/></xsl:variable>

做的:

<xsl:variable name="text" select="desc_text"/>

演示:http://xsltransform.net/bEzjRK9