मेरे डेटा मॉडल इस प्रकार है:एक्सएमएल रिकॉर्ड में सबसे हाल ही तिथि प्राप्त
<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>
यह एक बड़ा टेम्पलेट का हिस्सा है - मैं नहीं कर सकते वास्तव में यह परिवर्तन है, लेकिन ClubRoot का मान "<xsl:variable name="ClubRoot" select="/*[1]"/>"
सुनिश्चित करने के लिए मैं अपने बच्चे नोड्स पढ़ सकते है।
मैं हमेशा हो रही है
<blahhh>false</blahhh>
<blahhh/>
मेरे डीबग मानों के रूप में ... इसलिए मैं उस मूल्य को नहीं उठा रहा हूं जो मुझे उम्मीद है
क्या कोई यह बता सकता है कि मैं गलत कहां गया हूं?
उपर्युक्त डेटा से, मैं अपने सबसे छोटे खिलाड़ी चर में 14-01-1993 के मूल्य की अपेक्षा करता हूं। लेकिन यह खाली है।
का अनुवाद() फ़ंक्शन का उपयोग कर, आप XSL की गिनती कम कर सकते हैं तक है है: प्रकार 3 से 1 के निर्देश, और 'xsl: sort/@ select expression' को सरल बनाएं। –