XSL过滤一列,然后计算另一列中的值

时间:2016-07-14 09:55:36

标签: xslt filter count

我有一个包含职位信息的SharePoint列表。我正在尝试为值基础结构过滤名为 ORGANIZATION 的列。列表中还有一个名为作业状态的列,其值为打开商品已填充。所以我首先过滤所有基础设施记录,然后我需要计算开放角色的数量,提供角色和填充角色。

示例数据

ORGANISATION   |   JOBSTATUS
______________________________
Infrastructure |     FILLED
Infrastructure |     OPEN
Business       |     OFFER
Infrastructure |     OPEN
Business       |     FILLED
Infrastructure |     OPEN
Business       |     OPEN

CODE

<tr><th>ORGANISATION</th><th>OPEN</th><th>OFFER</th><th>FILLED</th></tr>

<tr>
<td>Infrastructure Services</td>
<td><xsl:variable name="OPEN">
       <xsl:for-each select="/dsQueryResponse/Rows/Row[(normalize-space(@Title)='Infrastructure')]">                                                                                        
          <xsl:value-of select="count(/dsQueryResponse/Rows/Row[(normalize-space(@JobStatus)='OPEN')])"/>                                                   
       </xsl:for-each>
    </xsl:variable>

    <xsl:value-of select="$OPEN"/>
</td>

<td>Offer Code</td><td>Filled Code</td></tr>

开放角色的总数是44.基础设施中的开放角色数是8.上面的代码返回44但是我需要它返回8.有人能看到我哪里出错吗?

1 个答案:

答案 0 :(得分:1)

而不是for-each只需使用

 <xsl:value-of select="count(/dsQueryResponse/Rows/Row[(normalize-space(@Title)='Infrastructure') and (normalize-space(@JobStatus)='OPEN')])"/>

这可能会给你你想要的东西。如果它有用,请告诉我:))