我的 XSLT 2.0 count() 函数未返回预期结果

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

我有一个 XML 块,如下所示:

    <wd:All_Eligible_Time_Off_Plans_for_Worker_group>
        <wd:Time_Off_Plan wd:Descriptor="Personal Floating Holiday">
            <wd:ID wd:type="WID">9cae06e1e9c601054c26dc48e9790000</wd:ID>
            <wd:ID wd:type="Absence_Plan_ID">HCM_ABSENCE_PTO</wd:ID>
        </wd:Time_Off_Plan>
        <wd:Time_Off_Balance>66</wd:Time_Off_Balance>
       </wd:All_Eligible_Time_Off_Plans_for_Worker_group>
    
    <wd:All_Eligible_Time_Off_Plans_for_Worker_group>
        <wd:Time_Off_Plan wd:Descriptor="Personal Floating Holiday">
            <wd:ID wd:type="WID">9cae06e1e9c601054c26dc48e9790000</wd:ID>
            <wd:ID wd:type="Absence_Plan_ID">HCM_ABSENCE_PTM</wd:ID>
        </wd:Time_Off_Plan>
        <wd:Time_Off_Balance>99</wd:Time_Off_Balance>
    </wd:All_Eligible_Time_Off_Plans_for_Worker_group>

我想计算节点数并设置一个具有“正确”结果数的变量。

这是我尝试过的......

这是我的 XSLT:

            <xsl:variable name="PTOTimeoffCount">
                <xsl:value-of select="count(wd:All_Eligible_Time_Off_Plans_for_Worker_group/wd:Time_Off_Plan/wd:ID[@wd:type ='Absence_Plan_ID'] = 'HCM_ABSENCE_PTO')"/>
            </xsl:variable>

无论节点是否存在,结果变量都是“1”。如果没有节点,则变量为“1”。如果有多个节点,则该变量为“1”。在上面的示例 XML 中,我期望为“1”,但有时没有匹配的节点,但我仍然在变量中得到“1”。我怀疑我的 count() 语法错误,但我对此很陌生,不知道如何修复它。

xml xslt xslt-2.0
© www.soinside.com 2019 - 2024. All rights reserved.