基于属性值在上下文节点上使用 sum()

Posted

技术标签:

【中文标题】基于属性值在上下文节点上使用 sum()【英文标题】:Using sum() on context node based on attribute values 【发布时间】:2013-12-21 20:16:51 【问题描述】:

我有一个 XML 文件,部分节点树如下...

我有一个用于 par 节点的模板,在其中我必须对一系列 holeNumber 之间的 par 元素求和,以下是我的代码的一部分,但它根本不起作用,我不确定如何引用并根据属性值对par元素求和(洞值10-18的和应在下表in列下求和)...

<xsl:when test="@holeNumber = 18">
   <td class="sub"><xsl:value-of select="sum(.[@holeNumber > 9 and @holeNumber 
                                                             &lt; 18])" /></td>
   <td class="final"><xsl:value-of select="sum(//par)" /></td>
</xsl:when>

我的表格目前看起来如下...

hole |1 |2 |3 |4 |5 |6 |7 |8 |9 | out |10 |11 |12 |13 |14 |15 |16 |17 |18 | in
     |4 |4 |5 |3 |4 |4 |5 |3 |4 |     |4  |5  |4  |3  |4  |5  |4  |3  |4  |

【问题讨论】:

【参考方案1】:

假设 &lt;par&gt; 是这个测试的上下文节点,看起来你似乎只是在这个 &lt;par&gt; 元素上运行 sum() 函数(我猜你看到的结果只是当前的值选择&lt;par&gt; 元素?)。

我认为这只是为 sum() 函数选择正确节点的问题,即所有 &lt;par&gt; 节点:

<td class="sub"><xsl:value-of select="sum(//par[@holeNumber > 9 and @holeNumber 
                                                         &lt; 18])" /></td>

不过,这或多或少是猜测,因为如果您只是发布 XML 源(而不是图像)的相关 sn-p 以及不正确的输出,它会提供更多信息。会让不懂高尔夫球的人更容易理解您的问题。

【讨论】:

那行得通,谢谢,我本来可以更具描述性的,但我自己对高尔夫球一窍不通。我只是在做一些书本练习,有时在引用正确的节点集时遇到了一些困难。

以上是关于基于属性值在上下文节点上使用 sum()的主要内容,如果未能解决你的问题,请参考以下文章

this——笔记

WPF TreeView - TreeViewItem上的上下文菜单不会出现

基于所选节点的 TreeViewer 上下文菜单 - SWT

查找在上下文菜单下单击的节点

在插入之前分配 NSManagedObject 属性不会坚持

堆排序