我有一个以下模板,其中基于条件匹配,值应该更改。
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" version="1.0" encoding="UTF-8" method="xml"/>
<xsl:template match="text()" name="create">
<xsl:param name="code"/>
<xsl:param name="boolean"/>
<xsl:if test="$boolean= 'True'">
<xsl:value-of select="'Services'"/>
</xsl:if>
<xsl:if test="$code=7">
<xsl:value-of select="'Accounts'"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
在此,第一个条件有效。如果我通过boolean = false
,则不会分配任何内容。如果它等于True
,则分配Services
。但对于代码,即使我通过7
,它也没有被分配。我用单引号尝试了这个条件
<xsl:if test="$code='7'">
我这样打电话
<xsl:variable name="Category">
<xsl:call-template name="create">
<xsl:with-param name="code" select="s0:Code"/>
<xsl:with-param name="boolen" select="'True'"/>
</xsl:call-template>
</xsl:variable>
s0:代码是元素名称,其值为7 任何帮助将不胜感激。
答案 0 :(得分:1)
您的模板需要将参数命名为code
和boolean
。您使用名为Occupation
和Agent
的参数调用它。模板忽略这些参数并对其自身参数的默认值进行操作(在您的示例中为空值)。