gpt4 book ai didi

sharepoint - 在 XSLT 中设置变量值的替代方法?

转载 作者:行者123 更新时间:2023-12-01 11:58:26 26 4
gpt4 key购买 nike

我在 SharePoint 2007 DataFormWebPart 上有一个基本的 XSLT 过滤器:

<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]"/>

$MyParameter 来自 ASP.NET 控件。但是尝试以任何其他方式设置变量值会导致错误:

<xsl:variable name="Rows">
<xsl:value-of select="/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]"/>
</xsl:variable>

<xsl:variable name="Rows">
/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]
</xsl:variable>

我得到的错误是:参数 1 必须返回一个节点集。 -->计数($行)<--

最终,我正在努力实现类似的目标:

<xsl:variable name="Rows">
<xsl:choose>
<xsl:when test="($MyParameter2 = '1')">
<xsl:value-of select="/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$otherParameter)]"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>

XSLT 是否可以实现类似的功能,或者我应该在 SharePoint Designer 中寻找其他可能性吗?

最佳答案

当您使用 count() 函数,它计算参数中指定的 node-set 中的 nodes

您尝试构造 $Rows 变量的其他两种方法是分配字符串,而不是节点集

  1. 当您以第一种方式设置变量时,您的select 语句从计算的 XPATH 表达式返回一个节点集

  2. xsl:value-of 返回一个字符串。因此,当您以第二种方式创建变量时,您正在分配字符串值 使用 XPATH 选择的节点集。

  3. 将字符串放在 xsl:variable 中,就像您使用第三种方法所做的那样,将该字符串值分配给 $Rows 变量。虽然该值碰巧是 XPATH 表达式,但它不会被这样计算。它只是将文字字符串 "/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]"分配给 $Rows变量。

解决方案:尝试将您的 XPATH 条件组合到单个 select 语句中,并合并逻辑以测试谓词中的 $MyParameter2 值过滤器:

<xsl:variable name="Rows" 
select="/dsQueryResponse/Rows/Row[
((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)
and $MyParameter2='1'
]
|
/dsQueryResponse/Rows/Row[
((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$otherParameter)
and $MyParameter2 !=1
]"
/>

关于sharepoint - 在 XSLT 中设置变量值的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3913224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com