我该如何测试字符串中的&符号?

时间:2012-05-10 14:26:06

标签: xslt-2.0 saxon

我根据字段的具体值设置变量。在<xsl:choose>内,以下代码完美无缺:

<xsl:when test="property_type='hotel'">47</xsl:when>

但是,我现在需要检查一个字符串,例如“b&amp; b”:

<xsl:when test="property_type='b&b'">48</xsl:when>

这失败了,给出了:

  

transform.xslt第42行第72行出错:SXXP0003:错误   由XML解析器报告:对实体“b”的引用必须以   ';'分隔符。

我理解错误,但我无法弄清楚如何绕过它。 &符存在于数据xml中并且是有效的(它在CDATA中)。错误发生在我的xslt中,它无效。

2 个答案:

答案 0 :(得分:2)

您需要使用xml实体&amp;转义&符号。您的代码应如下所示:

<xsl: when test="property_type='b&amp;b'">48</xsl:when>

答案 1 :(得分:0)

<xsl:when test="property_type='b&amp;b'">48</xsl:when>

answered by Greg