Ένα πρόβλημα με τη θέση () σε XSL ... ή μήπως είναι;
Είχα αυτό το πρόβλημα strage, δημιουργώντας παράλληλα ένα XSL σήμερα. Κοίταξε για απαντήσεις σε όλη την καθαρή, αλλά δεν μπορούσα να βρείτε οποιαδήποτε .... Στην πραγματικότητα υποθέτω! Εγώ ξέρω τι βαθούλωμα πρόβλημά μου ήταν, ναι, τι μπορώ να αναζητήσουμε;
Τέλος πάντων! Ακριβώς σε περίπτωση που έχετε αυτό ακριβώς το ίδιο πρόβλημα και εγώ με κάποιο τρόπο και με τη δύναμη της Δύναμης που κατάφερε να προσγειωθεί σε αυτή τη σελίδα ... Σας ευχαριστώ με τόνους ... Και αν έχετε λάθος εκφορτώνονται σε αυτή τη σελίδα για κάποιο περίεργο μοίρα και τυχαίνει να είναι ένας προγραμματιστής XSL, DO σημειώστε αυτό τώρα, ΓΙΑ ΤΟ ΜΕΛΛΟΝ αιτία, Αν κάποια μέρα, θα έχει να αντιμετωπίσει αυτό το ζήτημα, τότε η δύναμη θα μπορούσε να μην είναι μαζί σας.
Πρόβλημα δήλωση:
Έχω αυτό το XML, όπου υπάρχουν δύο κόμβοι με πολλά στοιχεία σε αυτό και τα στοιχεία μεταξύ αυτών των δύο κόμβοι έχουν ένα προς ένα αλληλογραφία. Στο παρακάτω παράδειγμα, κάθε αντικείμενο στον κόμβο <array name="PLAYURL" /> αφορά (αντίστοιχη θέση) σε ένα στοιχείο στον κόμβο <array name="SITENAME" />
<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>
Τώρα, έχω έναν βρόχο, όπου i βρόχο μέσω <array name="SITENAME">, και θέλω να πάρω το σχετικό στοιχείο (στην αντίστοιχη θέση) στην <array name="PLAYURL">,
Αυτό που θα προσπαθήσουμε να κάνουμε είναι κανονικά ...
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
ΣΥΓΝΩΜΗ! ΑΥΤΟ δεν θα λειτουργήσει ... Αχ! Surpised ...
Τώρα θα μπορούσε πιθανότατα να θέλουν να δοκιμάσουν, κάτι τέτοιο ...
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
Και πάλι αυτό δεν θα λειτουργήσει ... Τώρα σας ξύσιμο το κεφάλι σας, προσπαθεί να επικοινωνήσει με όλους όσους νομίζετε ότι ξέρει κάποια XSL και θα μπορούσε να είναι οποιαδήποτε βοήθεια ... προσπαθείτε κάθε άλλη επιλογή ... και ακόμα δεν θα λειτουργήσει ... Καλά! Αυτός είναι τι συνέβη σε μένα atleast ...
DONT απελπισία! Δοκιμάστε αυτό
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
Το Dont ΡΩΤΗΣΤΕ ΜΕ γιατί λειτουργεί. Αιτία i dont έχει το σωστό λόγο ... αν το κάνετε! Παρακαλώ μην ρίχνετε ένα σχόλιο. Θα μπορούσε να είναι πολύ χρήσιμα. Επίσης! αν έχετε καλύτερο τίτλο για αυτό το μήνυμα, κάντε πτώση μου μια γραμμή ![]()










































