Function 如何创建返回布尔值的xsl:函数
我想创建一个xsl:函数,其中包含一些可以返回布尔值的参数,我遇到了一些问题:Function 如何创建返回布尔值的xsl:函数,function,xslt,xslt-2.0,Function,Xslt,Xslt 2.0,我想创建一个xsl:函数,其中包含一些可以返回布尔值的参数,我遇到了一些问题: <xsl:if test="my:isEqual($Object1, $Object2)">SAME!</xsl:if> <xsl:function name="my:isEqual"> <xsl:param name="Object1" /> <xsl:param name="Object2" /> <xsl:variab
<xsl:if test="my:isEqual($Object1, $Object2)">SAME!</xsl:if>
<xsl:function name="my:isEqual">
<xsl:param name="Object1" />
<xsl:param name="Object2" />
<xsl:variable name="Object1PostalCode select="$Object1/PostalCode" />
<xsl:variable name="Object2PostalCode select="$Object2/PostalCode" />
<xsl:if test="$Object1PostalCode = $Object2PostalCode">
!!!What to do here!!!
</xsl:if>
</xsl:function>
一样!
!!!在这里做什么!!!
您只需要
<xsl:sequence select="$Object1PostalCode = $Object2PostalCode"/>
而不是xsl:if
我想创建一个xsl:function,其中包含一些可以返回的参数
一个布尔值,我遇到了麻烦:
<xsl:if test="my:isEqual($Object1, $Object2)">SAME!</xsl:if>
<xsl:function name="my:isEqual">
<xsl:param name="Object1" />
<xsl:param name="Object2" />
<xsl:variable name="Object1PostalCode select="$Object1/PostalCode" />
<xsl:variable name="Object2PostalCode select="$Object2/PostalCode" />
<xsl:if test="$Object1PostalCode = $Object2PostalCode">
!!!What to do here!!!
</xsl:if>
</xsl:function>
而是使用XSLT 2.0的全部功能并指定正确的类型:
<xsl:function name="my:isEqual">
<xsl:param name="Object1" />
<xsl:param name="Object2" />
<xsl:function name="my:isEqual" as="xs:boolean">
<xsl:param name="Object1" as="element()?" />
<xsl:param name="Object2" as="element()?" />
<xsl:if test="$Object1PostalCode = $Object2PostalCode">
!!!What to do here!!!
</xsl:if>
</xsl:function>
伟大的然而,实际测试稍微复杂一些。允许像这样进行复杂的“选择”吗?@BasHendriks:还是一样——不管测试有多复杂,只要输出(已评估的)测试就行了。谢谢,很好的解释:)
<xsl:sequence select="$Object1PostalCode eq $Object2PostalCode"/>
</xsl:function>