祖先和孩子的XSLT条件

时间:2014-01-06 06:42:49

标签: xml xslt

我在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>

先谢谢

1 个答案:

答案 0 :(得分:2)

可能是ContractRole[@ClientRoleType != ‘001’]中的错误,{@ 1}}不带@符号。 如果它不工作,请提供xml结构。