需要使用<xsl:each>

问题描述 投票:0回答:1

我需要使用 从多个 PlanDetail 中获取 Description

输入我有的xml:

<PlanDetails>
    <PlanDetail>
        <Number>1</Number>
        <Description>Management</Description>
    </PlanDetail>
    <PlanDetail>
        <Number>2</Number>
        <Description>Employees</Description>
    </PlanDetail>
    <PlanDetail>
        <Number>1</Number>
        <Description>Management</Description>
    </PlanDetail>
    <PlanDetail>
        <Number>2</Number>
        <Description>Employees</Description>
    </PlanDetail>
</PlanDetails>

我用过的Xsl:

<xsl:template match="PlanDetails">
    <xsl:variable name="Number" select="PlanDetails/PlanDetail/Number"/>
    <xsl:for-each select="PlanDetails/PlanDetail[Number=$Number][1]">
        <row>
            <entry>
                <p>Class 
                    <xsl:value-of select="Number"/>: 
                    <xsl:value-of select="Description"
               />
                </entry>
            </row>
        </xsl:for-each>
    </xsl:template>

我得到以下输出:

<row>
    <entry>
        <p>Class 1: Management</p>
    </entry>
    <entry>
        <p>Class 2: Employees</p>
    </entry>
    <entry>
        <p>Class 1: Management</p>
    </entry>
    <entry>
        <p>Class 2: Employees</p>
    </entry>
</row>

预期输出:

<row>
    <entry>
        <p>Class 1: Management</p>
    </entry>
    <entry>
        <p>Class 2: Employees</p>
    </entry>
</row>

由于我有大量的,我需要获取第一个 plandetails 的类号 1 和第一个 plandetails 的类号 2。

xml xslt xslt-2.0
1个回答
0
投票

使用

<xsl:for-each-group select="PlanDetails/PlanDetail" group-by="Number"><row>..</row></xsl:for-each-group>

© www.soinside.com 2019 - 2024. All rights reserved.