我有类似下面的XML节点 -
<url title="Take the STARPLUS® for entertaiment" depth="2" is_external="False"/>
现在在XSLT中编写类似下面的代码 -
<xsl:when test="contains(@title,'®')">
<!-- Make registration mark super scripted-->
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@title"/>
</xsl:otherwise>
</xsl:choose>
此处contains(@title,'®')
因特殊字符而无效。
有人可以帮我写这个XSLT检查。
注意 - 我无法在XML中进行编码或转义,因为它已经在系统中使用。
由于
答案 0 :(得分:0)
该测试应该可以正常工作。您可以尝试使用实体引用:
contains(@title,'®')
以下是两个正确匹配的示例。
XML输入
<url title="Take the STARPLUS® for entertaiment" depth="2" is_external="False"/>
XSLT 1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="url">
<xsl:if test="contains(@title,'®')">
<has_reg><xsl:value-of select="@title"/></has_reg>
</xsl:if>
<xsl:if test="contains(@title,'®')">
<has_reg><xsl:value-of select="@title"/></has_reg>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<强>输出强>
<has_reg>Take the STARPLUS® for entertaiment</has_reg>
<has_reg>Take the STARPLUS® for entertaiment</has_reg>