我有一个已转换为XSLT的SP数据视图,因此我可以添加一个显示百分比的标题(完整)。
在我将dvwp转换为xslt之前,我添加了两个计数标题 - 一个在Complete上,另一个在LastName上。他们精彩地工作 - 向我展示记录的数量和在完整字段中具有值的记录数。但是,当我将dv转换为xslt时,我意识到我丢失了标题:(
所以,我正在使用xslt添加它们。目前,我所拥有的等式的XPath代码是<xsl:value-of select="count($Rows) div count($Rows)" />
如何获取“完整”字段中的“是”值的总数?
UPDATE1:
找到此http://www.endusersharepoint.com/STP/viewtopic.php?f=14&t=534并尝试了它,但是会导致以下错误 - 设置处理器样式表失败:0x80004005:参数1必须返回一个节点集。 - &gt; count(/ dsQueryResponse / Rows / Row ='Y')&lt; -
UPDATE2:
Complete是我的XSLT数据集的字段名称。返回类型为Y或空白。对于笑脸,我尝试了<xsl:value-of select="count(/xpath/to/parent/element[@Complete eq 'Y']) div count($Rows)" />
但是我收到了以下错误 - 设置处理器样式表失败:0x80004005:预期令牌']'找到'NAME'.count((/ xpath / to / parent / element [@Complete] - &gt; eq&lt; - 'Y'])div计数($ Rows)我开始认为可能存在问题w /'eq'....引用我的XML运算符......
UPDATE3:
<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))
UPDATE4:
所以我知道我之前认为正确的数字没有显示b / c它是一个浮点数不正确,因为XPath和XSLT 1.0中的所有数字都是浮点数。 Reference
UPDATE5:
经过进一步调查,我发现问题出在我方程的count(/xpath/to/parent/element[@Complete = 'Y'])
部分,因为它返回0而不是值。 [我知道我的Complete col中至少有3个'Y'值]
UPDATE6 :
<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文件,我只是编写了记录/记录
的 UPDATE7
回到我原来的问题。我仍然试图找出XPath方程来显示父节点的数量(在上面发布的XML中记录),其中完整节点= Y.
的 UPDATE8
好。所以我使用http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=tryxsl_value-of进行了编辑和测试。使用XSLT计算完成= Y的数量是<xsl:value-of select="count(catalog/cd [complete = 'Y'])" />
所以我将W3schools上的功能完全放入我的SP数据视图中,我什么都没得到......只是一个空的空间。为什么代码不能在我的SPDV中运行?
答案 0 :(得分:0)
如果您的“完整”字段是元素:
<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 - 谓词“[]”仅选择“是”值