我有以下XSL:
<xsl:variable name="PriorityCall">
<xsl:choose>
<xsl:when test="$PriorityFlag = 1 or $PriorityFlag = 2 or $PriorityFlag =3">
<xsl:value-of select="true()"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="false()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
我希望将PriorityCall的值传递给.Net扩展对象,如下所示:
<xsl:value-of select="UCInterface:InsertNewGroup($UserRef, $SiteCode, $PriorityCall)" />
.Net方法的签名:
public string InsertNewGroup(string userRef, string siteCode, bool prioritySite)
<。> .Net中的值始终为真。但是,如果我调用这样的扩展方法,我可以传递false:
<xsl:value-of select="UCInterface:InsertNewGroup($UserRef, $SiteCode, false())" />
如何通过从$ PriorityCall中获取值来传递bool值?
答案 0 :(得分:1)
将变量定义为<xsl:variable name="PriorityCall" select="$PriorityFlag = 1 or $PriorityFlag = 2 or $PriorityFlag =3"/>
。
使用当前设置,您的变量是(在XSLT 1.0中)类型的结果树片段,一个结果树片段,其中包含一个非空文本节点,该节点恰好包含布尔值的表示形式。但是这将永远转换为真。如果您只是将select
属性与布尔XPath表达式一起使用,如上所示,那么该值的类型为boolean。