我的数据模型如下:
<Club>
<Captain>
<Name></Name>
<DateOfBirth>15-01-1985</DateOfBirth>
</Captain>
<PlayingStaff>
<Player>
<DateOfBirth>14-01-1993</DateOfBirth>
</Player>
<Player>
<DateOfBirth>07-12-1975</DateOfBirth>
</Player>
<Player>
<DateOfBirth>11-11-1991</DateOfBirth>
</Player>
</PlayingStaff>
</Club>
我尝试使用此处给出的答案:XSLT:获取最新日期,但它没有给我任何价值。
我试图让最年轻的玩家传递给外部函数。
我在 Biztalk 中这样做,所以我必须坚持使用 XSLT1
到目前为止,我的工作如下:
<xsl:variable name="youngestPlayer">
<xsl:for-each select="$ClubRoot/*[local-name()='PlayingStaff']/*[local-name()='Player']">
<xsl:sort select="./*[local-name()='DateOfBirth']" order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="DateOfBirth"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="IsYoungestPlayerUnderAgeLimit" select="externalfunctionreturningboolean">
<xsl:element name="blahhh"><xsl:value-of select="$IsYoungestPlayerUnderAgeLimit"/></xsl:element>
<xsl:element name="blahhh"><xsl:value-of select="$youngestPlayer"/></xsl:element>
这是一个大模板的一部分——我不能真正改变它,但 ClubRoot 的值是 "<xsl:variable name="ClubRoot" select="/*[1]"/>"
以确保我可以读取它的子节点。
我总是得到
<blahhh>false</blahhh>
<blahhh/>
作为我的调试值......所以我没有得到我期望的值
有人可以强调我哪里出错了吗?
根据上面的数据,我预计我的 youngestPlayer 变量中的值为 14-01-1993。但它是空白的。