XSLT / XML:将撇号转换为空格
我的XML
<Name>KUEN'S INTERNATIONAL</Name>
使用XSL需要转换到
<Name>KUENS INTERNATIONAL</Name>
在我的xsl中,我有一个模板,我用空格替换一些特殊字符。
我需要从字符串中替换'
撇号,这会引发错误。
我甚至研究过与该问题相关的一些答案,有些人尝试使用2.0版,但我在1.0工作
你能告诉我这些特殊字符的工作原理吗?&gt; &LT;&GT;&安培;者;
如何将'
撇号转换为空格
<xsl:template name="stripSpecialChars">
<xsl:param name="string" />
<xsl:value-of select="translate($string,'()*%$#@!~<>&apos;,.?[]=-+/\',' ')"/>
</xsl:template>
<xsl:text><![CDATA[<NAME>]]></xsl:text>
<xsl:call-template name="stripSpecialChars">
<xsl:with-param name="string" select="/Name"/>
</xsl:call-template>
<xsl:text><![CDATA[</NAME>]]></xsl:text>
答案 0 :(得分:2)
使用另一个变量:
<xsl:template name="stripSpecialChars">
<xsl:param name="string"/>
<xsl:variable name="stopset" select='"()*%$#@!~<>',.?[]=-+/\"'/>
<xsl:value-of select="translate($string, $stopset, ' ')"/>
</xsl:template>
一行版
<xsl:template name="stripSpecialChars">
<xsl:param name="string"/>
<xsl:value-of select='translate($string, "()*%$#@!~<>',.?[]=-+/\", " ")'/>
</xsl:template>