我有一个已转换为XSLT的SP数据视图,这样我就可以添加一个显示百分比(Complete)的标题
在我将dvwp转换为xslt之前,我添加了两个计数头-一个在Complete上,另一个在LastName上。他们的工作非常出色——向我展示了记录的数量和完整字段中有值的记录的数量。然而,当我将dv转换为xslt时,我意识到我丢失了头部:(
因此,我将在使用xslt时重新添加它们。目前,我所拥有的公式的XPath代码是<xsl:value-of select="count($Rows) div count($Rows)" />
如何获得"完成"字段中"是"值的总数?
更新1:
找到了这个http://www.endusersharepoint.com/STP/viewtopic.php?f=14&t=534并尝试,但会导致以下错误-设置处理器样式表失败:0x80004005:参数1必须返回节点集。-->count(/dsQueryResponse/Rows/Row='Y')<--
更新2:
Complete是带有我的XSLT数据集的字段的名称。返回类型为Y或空白。对于grins,我尝试了<xsl:value-of select="count(/xpath/to/parent/element[@Complete eq 'Y']) div count($Rows)" />
,但我收到了以下错误-设置处理器样式表失败:0x80004005:所需的令牌"]"找到了"NAME"。count((/xpath/to/parent/element[@Complete-->eq<--'Y'])div count($Rows)我开始认为可能有"eq"问题。。。。正在引用我的XML运算符。。。
更新3:
<xsl:value-of select="count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)" />
好吧,它仍然是0,但我认为它没有显示正确答案的原因是b/c,它希望显示一个整数,很明显,从方程中返回的值将是一个十进制。。。一直在摆弄XPath中的等式。。。这是我试过的
count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)*100
(count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows))*100
100(count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows))
更新4:
因此,我知道我以前的想法,即正确的数字没有显示b/c它是浮点,这是不正确的,因为XPath和XSLT1.0中的所有数字都是浮点。参考
更新5:
经过进一步的调查,我发现问题出在我方程的count(/xpath/to/parent/element[@Complete = 'Y'])
部分,因为这是返回0而不是值。[我知道我的完整库中至少有3个'Y'vals]
更新6:
<records*>
<record*>
<last_name></last_name>
<first_name></first_name>
<mi></mi>
<office_symbol></office_symbol>
<geo_location></geo_location>
<complete></complete>
<date_complete></date_complete>
<date_expires></date_expires>
<email></email>
<supervisor></supervior>
</record*>
</records*>
*我不知道这些节点被称为什么,因为我的数据来自数据库而不是xml文件,我只是编造了记录
更新7
回到我最初的问题。我仍在尝试找出XPath方程,以显示父节点的数量(我在上面发布的XML中的记录),其中完整的节点=Y。
更新8
好的。所以我用http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=tryxsl_value-of。使用XSLT来计算Complete=Y的#是<xsl:value-of select="count(catalog/cd [complete = 'Y'])" />
,所以当我把W3schools上有效的东西放进我的SP数据视图时,我什么都得不到。。。只是一片空地。为什么代码在我的SPDV中不起作用?
如果您的"Complete"字段是一个元素:
<xsl:value-of select="count(/xpath/to/complete/field/element[string(.) eq 'Yes])"/>
如果您的完整字段是元素的属性:
<xsl:value-of select="count(/xpath/to/parent/element[@complete eq 'Yes'])"/>
在不了解XML结构的情况下,我无法提供所需的特定XPATH——谓词"[]"只选择"是"值