Il mio modello di dati è la seguente:ottenere la maggior parte della data recente record 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>
Ho provato con la risposta data qui: XSLT: Getting the latest date ma si mangia darmi alcun valore.
Sto cercando di far passare il giocatore più giovane a una funzione esterna.
sto facendo questo in BizTalk, quindi devo attenersi a XSLT1
Il mio lavoro finora è come segue:
<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>
Questo fa parte di un grande modello - non posso davvero cambiare questo, ma il valore di ClubRoot è "<xsl:variable name="ClubRoot" select="/*[1]"/>"
assicurare riesco a leggere i suoi nodi figlio.
sto ottenendo sempre
<blahhh>false</blahhh>
<blahhh/>
come i miei valori di debug ... quindi non sono raccogliendo il valore mi aspetto
Qualcuno può evidenziare dove ho sbagliato?
Dai dati di cui sopra, mi aspetto il valore di 14-01-1993 nella mia variabile youngestPlayer. Ma è vuoto.
utilizzando la funzione translate(), è possibile ridurre il numero di xsl: sort istruzioni da 3 a 1, E semplificare 'xsl: sort/@ select expression'. –