xslt字符串中的特殊字符

时间:2011-03-16 23:11:43

标签: xml xslt

需要能够在字符串Cmm'l中传递单引号,以便它读取该短语的原始xml文件。我该怎么做呢?

<xsl:when test="contains(ct-type/cats, 'Cmml') or contains(ct-type/cats, 'rst')">
<xsl:element name="Terms">
<xsl:value-of select="'example'"/>
</xsl:element>
</xsl:when>

2 个答案:

答案 0 :(得分:0)

您可以将值作为变量或参数传递。

我确信有更好的方法可以做到这一点,但我现在无法想到它。

以下是将其作为带有默认值的参数传递的示例:

  <xsl:template match="doc">
    <xsl:param name="cat_type_1">
      <xsl:text>Cmm'l</xsl:text>
    </xsl:param>
    <xsl:param name="cat_type_2">
      <xsl:text>rst</xsl:text>
    </xsl:param>
    <xsl:if test="contains(ct-type/cats, $cat_type_1) or contains(ct-type/cats, $cat_type_2)">
      <Terms>Example</Terms>
    </xsl:if>
  </xsl:template>

答案 1 :(得分:0)

您可以使用撇号作为属性值分隔符,然后在字符串中使用实体:

<xsl:when test='contains(ct-type/cats, "Cmm&apos;l") or contains(ct-type/cats, "rst")'>

如果字符串中同时需要引号和撇号,则可以使用例如字符串或标点符号的变量。