我正在尝试将字符串合并到when条件中,但是它不起作用。
我已经尝试过了:
<xsl:text>Salary:</xsl:text>
<xsl:for-each select="z:SalaryRecord">
<xsl:choose>
<xsl:when test="z:SalaryRecord = 'agreement'">
<xsl:value-of select="concat('	',position(),'	',z:Type,' ')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('	',position(),'	','	',z:Type,'(','from ',z:AmountFrom, ' to ',z:AmountTo,')',' ')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
这:
<xsl:when test="z:SalaryRecord::text() = 'agreement'">
还有这个
<xsl:when test="z:SalaryRecord == 'agreement'">
我的XML源代码:
<RequiredSalary>
<SalaryRecord>
<Type>monthly</Type>
<AmountFrom>1000</AmountFrom>
<AmountTo>2000</AmountTo>
</SalaryRecord>
<SalaryRecord>
<Type>agreement</Type>
</SalaryRecord>
</RequiredSalary>
有什么想法吗?
谢谢
答案 0 :(得分:0)
一种解决您的情况的方法可能是以下模板。但是,您必须在样式表中为z
前缀定义一个名称空间。尝试将xmlns:z="http://whatever.is.your.namespace"
添加到XSLT样式表元素。
<xsl:template match="z:RequiredSalary">
<xsl:for-each select="z:SalaryRecord">
<xsl:text>Salary:</xsl:text>
<xsl:choose>
<xsl:when test="z:Type = 'agreement'">
<xsl:value-of select="concat('	',position(),'	',z:Type,' ')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('	',position(),'	','	',z:Type,'(','from ',z:AmountFrom, ' to ',z:AmountTo,')',' ')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:value-of select="' '" />
</xsl:template>