我的數據模型如下:獲取最新日期在XML記錄
<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: Getting the latest date但它不是給我的任何值。
我想讓最年輕的玩家傳遞給外部函數。
我在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>
這是一個大模板的一部分 - 我真的不能改變這種情況,但根腫病的值是「<xsl:variable name="ClubRoot" select="/*[1]"/>"
,以確保我能讀懂它的子節點。
我一直都想與
<blahhh>false</blahhh>
<blahhh/>
作爲我的調試值...所以我沒有拿起我期望的值
有人可以突出顯示我出錯的地方嗎?
從上面的數據中,我期望在我的youngestPlayer變量中的值爲14-01-1993。但它的空白。
通過使用translate()函數,可以減少XSL的計數:排序指令從3到1,AND簡化'xsl:sort/@ select表達式'。 –