mô hình dữ liệu của tôi là như sau:Get nhất ngày gần đây trong hồ sơ 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>
Tôi đã cố gắng sử dụng các câu trả lời đưa ra ở đây: XSLT: Getting the latest date nhưng nó isnt đem lại cho tôi bất kỳ giá trị.
Tôi đang cố gắng để người chơi trẻ nhất vượt qua chức năng bên ngoài.
tôi đang làm điều này trong BizTalk vì vậy tôi phải dính vào XSLT1
Công việc của tôi cho đến nay như sau:
<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>
Đây là một phần của một mẫu lớn - Tôi có thể không thực sự thay đổi điều này, nhưng giá trị của sưng rễ là "<xsl:variable name="ClubRoot" select="/*[1]"/>"
để đảm bảo tôi có thể đọc các nút con của nó.
tôi luôn nhận được
<blahhh>false</blahhh>
<blahhh/>
làm giá trị gỡ lỗi của tôi ... vì vậy tôi không chọn giá trị tôi mong đợi
Ai đó có thể làm nổi bật nơi tôi đã đi sai?
Từ dữ liệu ở trên, tôi mong đợi giá trị 14-01-1993 trong biến nhỏ nhất của tôiPlayer. Nhưng nó trống.
Bằng việc sử dụng dịch() chức năng, bạn có thể giảm số lượng của xsl: sort hướng dẫn từ 3 đến 1, VÀ đơn giản hóa biểu thức 'xsl: sort/@ select'. –