我在XSLT 1.0中有以下XSLT脚本,我在XML转换的许多部分调用,请注意客户端记录将多次出现:
<xsl:template name=" ReturnClientInfo " match="/">
<xsl:param name="CustomerNumber"/>
<xsl:for-each select="/XMLCOVER/Task/TaskData/Contract/ContractRoles/ContractRole/Customer/Identifiers/Identifier[@SocialNumber = $CustomerNumber]">
<xsl:if test="position()=1">
<!—Print client details once -->
</xsl:if>
</xsl:for-each>
</xsl:template>
现在我需要添加另一个排除ContractRole等于'001'的条件,我尝试了以下脚本,它返回与上面脚本相同的结果。
<xsl:template name="ReturnClientInfo" match="/">
<xsl:param name="CustomerNumber"/>
<xsl:for-each select="/XMLCOVER/Task/TaskData/Contract/ContractRoles/ContractRole[@ClientRoleType != ‘001’]/Customer/Identifiers/Identifier[@SocialNumber = $CustomerNumber]">
<xsl:if test="position()=1">
<!—Print client details once -->
</xsl:if>
</xsl:for-each>
</xsl:template>
先谢谢
答案 0 :(得分:2)
可能是ContractRole[@ClientRoleType != ‘001’]
中的错误,{@ 1}}不带@符号。
如果它不工作,请提供xml结构。