Συνάρτηση current() του XSLT
Ορισμός και χρήση
Η συνάρτηση current() επιστρέφει ένα σύνολο κόμβων που περιέχει μόνο τον τρέχοντα κόμβο. Γενικά, ο τρέχων κόμβος είναι ο ίδιος με τον κόμβο του περιβάλλοντος.
<xsl:value-of select="current()"/>
Είναι ίσο με
<xsl:value-of select="."/>
Αλλά υπάρχει μια διαφορά. Ας δούμε την εξής έκφραση XPath: "catalog/cd". Η έκφραση αυτή επιλέγει τον υποκείμενο κόμβο <catalog> του τρέχοντος κόμβου και στη συνέχεια επιλέγει τον υποκείμενο κόμβο <cd> του κόμβου <catalog>. Αυτό σημαίνει ότι το "." έχει διαφορετικό νόημα σε κάθε βήμα της υπολογιστικής διαδικασίας.
Η παρακάτω γραμμή:
<xsl:apply-templates select="//cd[@title=current()/@ref]"/>
Θα χειριστεί όλα τα στοιχεία cd που έχουν την ίδια τιμή για την ιδιότητα title με την τιμή της ιδιότητας ref του τρέχοντος κόμβου.
Διαφορετικό από αυτό:
<xsl:apply-templates select="//cd[@title=./@ref]"/>
Αυτή θα χειρίζεται όλα τα στοιχεία cd που έχουν την ίδια τιμή για τις ιδιότητες title και ref.
Γραμματική
node-set current()
Παράδειγμα
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <xsl:for-each select="catalog/cd/artist"> Current node: <xsl:value-of select="current()"/> <br /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>
Εμφάνιση αρχείου XML,Εμφάνιση αρχείου XSL,Εμφάνιση Αποτελεσμάτων.