SharePoint Designer Data View- XSLT Count



我正在使用 SPD 2010 中的数据视图 Web 部件。 我的 xml 结构如下:

<ProjectGroups>
    <ProjectGroup>
        <GroupID>1</GroupID>
        <ProjectName>Project 1</ProjectName>
    </ProjectGroup>
    <ProjectGroup>
        <GroupID>2</GroupID>
        <ProjectName>Project 2</ProjectName>
    </ProjectGroup>
    <ProjectGroup>
        <GroupID>2</GroupID>
        <ProjectName>Project 3</ProjectName>
    </ProjectGroup>
    </ProjectGroups>

这是一个汇总 Web 部件,因此我要做的是获取每个项目组下的项目计数。 对于我上面的示例,组 ID 1 有 1 个项目,组 ID 2 有 2 个项目。 我确信有一种方法可以做到这一点,但我正在即时学习 xslt,所以我不确定该怎么做。 任何帮助,不胜感激。 谢谢。

这个样式表...

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:key name="groups" match="ProjectGroup" use="GroupID" />
<xsl:template match="@*|node()">
 <xsl:copy> 
   <xsl:apply-templates select="@*|node()" />
 </xsl:copy> 
</xsl:template>
<xsl:template match="ProjectGroup[generate-id()=generate-id(key('groups',GroupID)[1])]">
 <xsl:copy> 
   <xsl:apply-templates select="@*" />
   <xsl:attribute name="count-of-projects">
     <xsl:value-of select="count(key('groups',GroupID))" />
   </xsl:attribute>
   <xsl:apply-templates select="node()" />
 </xsl:copy> 
</xsl:template>
</xsl:stylesheet>

。当应用于您的输入时,将产生...

<?xml version="1.0" encoding="utf-8"?>
<ProjectGroups>
    <ProjectGroup count-of-projects="1">
        <GroupID>1</GroupID>
        <ProjectName>Project 1</ProjectName>
    </ProjectGroup>
    <ProjectGroup count-of-projects="2">
        <GroupID>2</GroupID>
        <ProjectName>Project 2</ProjectName>
    </ProjectGroup>
    <ProjectGroup>
        <GroupID>2</GroupID>
        <ProjectName>Project 3</ProjectName>
    </ProjectGroup>
</ProjectGroups>

相关内容

  • 没有找到相关文章

最新更新