- Εισαγωγή στην XSLT
- Βιβλία:-
- Βιβλία:-
- Βιβλία:-
- Βιβλία:-
- Βιβλία:-
- Βιβλία:-
- Βιβλία:-
- Βιβλία:-
- Βιβλία:-
- Κατάλογος βιβλίων Όνομα :-
- Λίστα βιβλίων Όνομα :-
- Συμπέρασμα
Αυτό το σεμινάριο εξηγεί τι είναι το XSLT, τους μετασχηματισμούς, τα στοιχεία και τη χρήση του με παράδειγμα. Καλύπτει επίσης τη σημασία του XPath για την ανάπτυξη κώδικα μετατροπής XSLT:
Ο όρος "XSLT" προκύπτει από το συνδυασμό δύο λέξεων, δηλαδή "XSL" και "T", "XSL" είναι η συντομογραφία της "Extensible Stylesheet Language" και "T" είναι η συντομογραφία της "Transformation".
Έτσι, βασικά, η XSLT είναι μια γλώσσα μετασχηματισμού που χρησιμοποιείται για τον μετασχηματισμό/μετατροπή εγγράφων XML σε έγγραφα XML ή σε άλλες μορφές όπως HTML, PDF με τη χρήση XSL-FO (Formatting Objects), κ.λπ.
Εισαγωγή στην XSLT
Ο μετασχηματισμός γίνεται με τη βοήθεια του επεξεργαστή XSLT (όπως Saxon, Xalan). Αυτός ο επεξεργαστής XSLT λαμβάνει ένα ή περισσότερα έγγραφα XML ως πηγή με ένα αρχείο XSLT που περιέχει κώδικα XSLT γραμμένο σε αυτό και τα έγγραφα αποτελέσματος/εξόδου θα παραχθούν αργότερα όπως φαίνεται στο παρακάτω διάγραμμα.
Ο επεξεργαστής XSLT αναλύει τα έγγραφα XML της πηγής χρησιμοποιώντας το X-Path για να περιηγηθεί στα διάφορα στοιχεία της πηγής ξεκινώντας από το στοιχείο ρίζα μέχρι το τέλος των εγγράφων.
Όλα όσα πρέπει να ξέρετε για X-Path
Μετασχηματισμός XSLT
Για την έναρξη του μετασχηματισμού χρειαζόμαστε ένα έγγραφο XML στο οποίο θα εκτελεστεί ο κώδικας XSLT, το ίδιο το αρχείο κώδικα XSLT και το εργαλείο ή το λογισμικό που διαθέτει επεξεργαστή XSLT (μπορείτε να χρησιμοποιήσετε οποιαδήποτε δωρεάν έκδοση ή δοκιμαστική έκδοση του λογισμικού για σκοπούς εκμάθησης).
#1) Κώδικας XML
Ακολουθεί ο πηγαίος κώδικας XML στον οποίο θα εκτελεστεί ο κώδικας XSLT.
Όνομα αρχείου: Books.xml
XSLT Programmer's Reference Michael Kay Wrox $40 4ο Head First Java Kathy Sierra O'reilly $19 1ο SQL The Complete Reference James R. Groff McGraw-Hill $45 3ο
#2) Κώδικας XSLT
Ακολουθεί ο κώδικας XSLT με βάση τον οποίο θα εκτελεστεί το παραπάνω έγγραφο XML.
Όνομα αρχείου: Books.xsl
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
#3) Αποτέλεσμα / Κωδικός εξόδου
Ο παρακάτω κώδικας θα παραχθεί μετά τη χρήση του κώδικα XSLT στο παραπάνω έγγραφο XML.
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
5350192956 | Αναφορά προγραμματιστή XSLT | Michael Kay | Wrox | $40 | 4η |
3741122298 | Head First Java | Kathy Sierra | O'reilly | $19 | 1η |
9987436700 | SQL Η πλήρης αναφορά | James R. Groff | McGraw-Hill | $45 | 3η |
#4) Προβολή αποτελέσματος / εξόδου στο πρόγραμμα περιήγησης στο Web
Βιβλία:
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
5350192956 | Αναφορά προγραμματιστή XSLT | Michael Kay | Wrox | $40 | 4η |
3741122298 | Head First Java | Kathy Sierra | O'reilly | $19 | 1η |
9987436700 | SQL Η πλήρης αναφορά | James R. Groff | McGraw-Hill | $45 | 3η |
Στοιχεία XSLT
Για να κατανοήσουμε τον παραπάνω κώδικα XSLT και τη λειτουργία του, πρέπει πρώτα να κατανοήσουμε τα διάφορα στοιχεία XSLT και τα χαρακτηριστικά τους.
#1) Ή
Κάθε κώδικας XSLT πρέπει να ξεκινά με το στοιχείο root είτε ή
Χαρακτηριστικά:
- @xmlns:xsl: Συνδέει το έγγραφο XSLT με το πρότυπο XSLT.
- @version: Καθορίζει την έκδοση του κώδικα XSLT στον αναλυτή.
#2)
Αυτή η δήλωση ορίζει ένα σύνολο κανόνων που εφαρμόζονται για την επεξεργασία ή το μετασχηματισμό του επιλεγμένου στοιχείου εισόδου του αρχικού εγγράφου στους καθορισμένους κανόνες του στοιχείου στόχου των εγγράφων εξόδου.
Βασικά, υπάρχουν δύο τύποι προτύπων ανάλογα με τα χαρακτηριστικά τους:
(i) Ονομαστικό πρότυπο: Όταν το στοιχείο xsl: template περιέχει το χαρακτηριστικό @name, τότε αυτό ονομάζεται ονομαστικό πρότυπο (Named Template).
Τα ονομαστικά πρότυπα καλούνται με το στοιχείο xsl:call-template.
(ii) Πρότυπο αντιστοίχισης: Το στοιχείο xsl:template περιέχει το χαρακτηριστικό @match που περιέχει ένα πρότυπο αντιστοίχισης ή ένα XPath που εφαρμόζεται στους κόμβους εισόδου.
Τα πρότυπα αντιστοίχισης καλούνται από το στοιχείο xsl:apply-template.
Το στοιχείο xsl:template πρέπει να έχει είτε το χαρακτηριστικό @match είτε το χαρακτηριστικό @name είτε και τα δύο. Ένα στοιχείο xsl:template που δεν έχει το χαρακτηριστικό match πρέπει να μην έχει ούτε το χαρακτηριστικό mode ούτε το χαρακτηριστικό priority.
Ας ξαναγράψουμε το παραπάνω XSLT(
a) Κώδικας XSLT βασισμένος στο Match Template με . Δείτε παρακάτω κίτρινο & μάρκα; γκρι τονισμένο τροποποιημένο κώδικα, θα παράγει το ίδιο παραπάνω αποτέλεσμα εξόδου.
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|
Ανατρέξτε στο στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
b) Κώδικας XSLT βασισμένος στο ονομαστικό πρότυπο με . Δείτε παρακάτω κίτρινο & μάρκα; γκρι τονισμένο τροποποιημένο κώδικα, θα παράγει το ίδιο παραπάνω αποτέλεσμα εξόδου.
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|
Ανατρέξτε στο στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
#3)
Ο επεξεργαστής θα βρει και θα εφαρμόσει όλα τα πρότυπα που έχουν XPath που ορίζονται στο χαρακτηριστικό @select.
Το χαρακτηριστικό @mode χρησιμοποιείται επίσης εάν θέλουμε να δώσουμε περισσότερους από έναν τρόπους εξόδου με το ίδιο περιεχόμενο εισόδου.
#4)
Ο επεξεργαστής θα κάνει μια κλήση στα πρότυπα που έχουν τιμή μέσα στο χαρακτηριστικό @name (υποχρεωτικό).
στοιχείο χρησιμοποιείται για να περάσει παραμέτρους στο πρότυπο.
#5)
Παρέχετε την τιμή συμβολοσειράς/κειμένου σχετικά με την έκφραση XPath που ορίζεται στο χαρακτηριστικό @select, όπως ορίζεται στον παραπάνω κώδικα.
Αυτό θα δώσει την τιμή του ονόματος του βιβλίου.
#6) : Επανάληψη
Αυτό θα επεξεργαστεί τις οδηγίες για κάθε σύνολο κόμβων (xpath που ορίζεται στο χαρακτηριστικό @select (απαιτείται)) στην ταξινομημένη ακολουθία.
Ο παραπάνω κώδικας σημαίνει για κάθε κόμβο σύνολο αποθηκευτικών/βιβλιακών μέσων:
/store/book[1]
/store/book[2]
/store/book[3]
μπορεί επίσης να χρησιμοποιηθεί ως παιδί της xsl:for-each για να καθορίσει τη σειρά ταξινόμησης.
#7) : Επεξεργασία υπό όρους
Οι εντολές xsl:if θα επεξεργαστούν μόνο εάν η τιμή Boolean του χαρακτηριστικού @test είναι αληθής, διαφορετικά η εντολή δεν θα αξιολογηθεί και θα επιστραφεί η κενή ακολουθία.
2"> Condition True: Ο αριθμός των βιβλίων είναι μεγαλύτερος από δύο.
Αποτέλεσμα: Κατάσταση True: Ο αριθμός των βιβλίων είναι μεγαλύτερος από δύο.
Εδώ η count() είναι η προκαθορισμένη συνάρτηση.
#8) : Εναλλακτικές συνθήκες επεξεργασίας
Το xsl:choose έχει πολλαπλές αιτίες για διαφορετικές συνθήκες που ελέγχονται μέσα στο χαρακτηριστικό @test των στοιχείων xsl:when, η συνθήκη δοκιμής που βγαίνει αληθής πρώτη μεταξύ όλων των xsl:when, αυτή θα επεξεργαστεί πρώτη και υπάρχει ένα προαιρετικό στοιχείο xls:otherwise, έτσι ώστε αν καμία από τις δοκιμές συνθήκης δεν βγει αληθής, τότε αυτό το xsl:otherwise θα ληφθεί υπόψη.
Προϋπόθεση Αληθής: Ο αριθμός του βιβλίου είναι ένα. Προϋπόθεση Αληθής: Ο αριθμός του βιβλίου είναι δύο. Προϋπόθεση Αληθής: Ο αριθμός του βιβλίου είναι τρία. Δεν υπάρχει αντιστοιχία όρων.
Αποτέλεσμα: Κατάσταση Αληθής: Ο αριθμός του βιβλίου είναι τρεις.
#9)
Το xsl:copy λειτουργεί στο στοιχείο πλαισίου, δηλαδή αν αυτό είναι κόμβος, τότε θα αντιγράψει τον κόμβο πλαισίου στον νέο παραγόμενο κόμβο και αυτό δεν θα αντιγράψει τα παιδιά του κόμβου πλαισίου. Για το λόγο αυτό, αυτό ονομάζεται ρηχό αντίγραφο. Σε αντίθεση με το στοιχείο xsl:copy-of, το xsl:copy δεν έχει το χαρακτηριστικό@select.
Στον παρακάτω κώδικα, τα στοιχεία του πλαισίου αντιγράφονται στην έξοδο &- όλα τα στοιχεία των παιδιών καλούνται &- αντιγράφονται από το xsl:apply-template αναδρομικά.
node() Αντιπροσωπεύει όλους τους κόμβους και όλα τα χαρακτηριστικά τους αναδρομικά.
Αποτέλεσμα: Αυτό θα αντιγράψει όλους τους κόμβους και τα χαρακτηριστικά του αρχικού εγγράφου αναδρομικά στο έγγραφο εξόδου, δηλαδή θα δημιουργήσει ένα ακριβές αντίγραφο του αρχικού εγγράφου.
#10)
Το xsl:copy-of θα αντιγράψει την ακολουθία των κόμβων με όλα τα παιδιά και τα χαρακτηριστικά της αναδρομικά από προεπιλογή, λόγω αυτής της φύσης ονομάζεται επίσης βαθιά αντιγραφή. Το χαρακτηριστικό @select απαιτείται για την αξιολόγηση του XPath.
Αποτέλεσμα: Αυτό θα αντιγράψει όλους τους κόμβους και τα χαρακτηριστικά του αρχικού εγγράφου αναδρομικά στο έγγραφο εξόδου, δηλαδή θα δημιουργήσει ένα ακριβές αντίγραφο του αρχικού εγγράφου.
Σημαίνει αντίγραφο του τρέχοντος κόμβου και του τρέχοντος χαρακτηριστικού.
#11)
Αυτό το στοιχείο χρησιμοποιείται για να γράψετε ένα σχόλιο στο αποτέλεσμα-στόχο, οποιοδήποτε περιεχόμενο κειμένου που πλαισιώνει αυτή την ετικέτα θα εκτυπωθεί ως σχολιασμένη έξοδος.
Αυτό θα εκτυπωθεί στην έξοδο ως κόμβος σχολίου.
Αποτέλεσμα:
#12)
Αυτό θα δημιουργήσει έναν κόμβο κειμένου στο έγγραφο αποτελέσματος, η τιμή μέσα στο xsl:text θα εκτυπωθεί ως συμβολοσειρά στην έξοδο.
Αυτό είναι ένα
γραμμή κειμένου.
Έξοδος:
Αυτό είναι ένα
γραμμή κειμένου.
#13)
Αυτό θα δημιουργήσει ένα στοιχείο στο έγγραφο αποτελέσματος με το όνομα που αναφέρεται στο χαρακτηριστικό @name. Το χαρακτηριστικό name είναι το απαιτούμενο χαρακτηριστικό.
Αποτέλεσμα: 5350192956
#14)
Αυτό θα δημιουργήσει ένα χαρακτηριστικό στο γονικό στοιχείο του στο έγγραφο του αποτελέσματος. Το όνομα του χαρακτηριστικού ορίζεται από το χαρακτηριστικό name και η τιμή του χαρακτηριστικού υπολογίζεται από το XPath που αναφέρεται στο χαρακτηριστικό select όπως δίνεται στον παρακάτω κώδικα. Το χαρακτηριστικό name είναι το απαιτούμενο χαρακτηριστικό.
Αποτέλεσμα:
#15)
Αυτό το στοιχείο θα ταξινομήσει τον επιλεγμένο κόμβο με τρόπο ακολουθίας, ανάλογα με την αύξουσα ή φθίνουσα κατεύθυνση. Ο κόμβος ή το XPath δίνεται μέσω του χαρακτηριστικού @select και η κατεύθυνση της ταξινόμησης ορίζεται από το χαρακτηριστικό @order.
Στον παρακάτω κώδικα θα πάρουμε όλα τα βιβλία σύμφωνα με το όνομα του βιβλίου σε αλφαβητική σειρά.
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
Ανατρέξτε σε αυτό το στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
Αποτέλεσμα: Ο παρακάτω κατάλογος περιέχει τα ονόματα των βιβλίων με αλφαβητική σειρά, δηλαδή με αύξουσα σειρά.
Βιβλία:
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
3741122298 | Head First Java | Kathy Sierra | O'reilly | $19 | 1η |
9987436700 | SQL Η πλήρης αναφορά | James R. Groff | McGraw-Hill | $45 | 3η |
5350192956 | Αναφορά προγραμματιστή XSLT | Michael Kay | Wrox | $40 | 4η |
#16)
Αυτό το στοιχείο δηλώνει μια μεταβλητή που κρατάει μια τιμή σε αυτήν. Μια μεταβλητή μπορεί να είναι μια παγκόσμια μεταβλητή ή μια τοπική μεταβλητή. Το όνομα της μεταβλητής ορίζεται από το χαρακτηριστικό @name και η τιμή που θα κρατάει αυτή η μεταβλητή ορίζεται από το χαρακτηριστικό @select.
Η πρόσβαση της παγκόσμιας μεταβλητής είναι παγκόσμια, δηλαδή οι μεταβλητές μπορούν να κληθούν μέσα σε οποιοδήποτε στοιχείο και παραμένουν προσβάσιμες μέσα στο φύλλο στυλ.
Για να ορίσουμε μια παγκόσμια μεταβλητή, αρκεί να τη δηλώσουμε δίπλα στο στοιχείο root του φύλλου στυλ, όπως φαίνεται στον παρακάτω κώδικα με την κίτρινη επισήμανση, η μεταβλητή 'SecondBook' είναι η παγκόσμια μεταβλητή και περιέχει το όνομα του δεύτερου βιβλίου.
Η πρόσβαση της τοπικής μεταβλητής είναι τοπική για το στοιχείο στο οποίο ορίζεται, δηλαδή η μεταβλητή αυτή δεν θα είναι προσβάσιμη εκτός του στοιχείου στο οποίο ορίζεται, όπως φαίνεται στον παρακάτω κώδικα που είναι γκριζωμένος, η μεταβλητή 'first book' είναι τοπική μεταβλητή και περιέχει το όνομα του πρώτου βιβλίου.
Για να γίνει μια κλήση είτε στην παγκόσμια μεταβλητή είτε στην τοπική μεταβλητή χρησιμοποιείται το σύμβολο του δολαρίου ($) πριν από το όνομα της μεταβλητής, όπως φαίνεται παρακάτω με κίτρινη επισήμανση $ .
Όνομα πρώτου βιβλίου: Όνομα δεύτερου βιβλίου:
Ανατρέξτε στο στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
Αποτέλεσμα:
Όνομα πρώτου βιβλίου: Αναφορά προγραμματιστή XSLT
Όνομα δεύτερου βιβλίου: Head First Java
#17)
Αυτό το στοιχείο χρησιμοποιείται για τη δήλωση κλειδιών, για τις τιμές του προτύπου που ταιριάζουν με το συγκεκριμένο κλειδί.
Το όνομα είναι ένας πάροχος σε αυτό το κλειδί με το χαρακτηριστικό @name(" get-publisher "), το οποίο χρησιμοποιείται αργότερα μέσα στη συνάρτηση key(). Το χαρακτηριστικό @match παρέχεται για την ευρετηρίαση του κόμβου εισόδου με εκφράσεις XPath(" βιβλίο "), όπως στο παρακάτω κίτρινο επισημασμένο @match, χρησιμοποιείται για την εύρεση όλων των βιβλίων που είναι διαθέσιμα στο κατάστημα.
Σε σχέση με το χαρακτηριστικό @match, χρησιμοποιείται το χαρακτηριστικό @use, το οποίο δηλώνει τον κόμβο για να λάβει την τιμή για το συγκεκριμένο κλειδί μέσω της έκφρασης XPath("publisher").
Τώρα, ας υποθέσουμε ότι χρειαζόμαστε τα στοιχεία του βιβλίου που εκδίδεται μόνο από τον εκδότη 'Wrox', τότε μπορούμε να πάρουμε αυτή την τιμή εύκολα μέσω του στοιχείου xsl:key, δημιουργώντας ένα ζεύγος κλειδιού-τιμής.
key('get-publisher', 'Wrox') Η Key() λαμβάνει δύο παραμέτρους, η πρώτη είναι το όνομα του κλειδιού, το οποίο σε αυτή την περίπτωση είναι 'get-publisher', η δεύτερη είναι η τιμή συμβολοσειράς που πρέπει να αναζητηθεί, η οποία στην περίπτωσή μας είναι 'Wrox'.
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
Ανατρέξτε στο στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
Αποτέλεσμα:
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
5350192956 | Αναφορά προγραμματιστή XSLT | Michael Kay | Wrox | $40 | 4η |
Αποτέλεσμα / Προβολή HTML:
Βιβλία:
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
5350192956 | Αναφορά προγραμματιστή XSLT | Michael Kay | Wrox | $40 | 4η |
#18)
Αυτό το στοιχείο χρησιμοποιείται για σκοπούς αποσφαλμάτωσης στην ανάπτυξη XSLT. Το στοιχείο δίνει την έξοδό του στην τυπική οθόνη εξόδου της εφαρμογής.
Το χαρακτηριστικό @terminate χρησιμοποιείται με δύο τιμές είτε 'yes' είτε 'no', εάν η τιμή είναι 'yes' τότε ο αναλυτής τερματίζει αμέσως μόλις ικανοποιηθεί η συνθήκη δοκιμής για να εκτελεστεί το μήνυμα.
Για να το καταλάβετε αυτό, ας υποθέσουμε ότι αν στο έγγραφο εισόδου μας το στοιχείο price καταλήξει τυχαία σε κενό, όπως στον παρακάτω κώδικα, τότε η επεξεργασία θα πρέπει να σταματήσει αμέσως μόλις ο επεξεργαστής συναντήσει το κενό στοιχείο price, κάτι που μπορεί εύκολα να επιτευχθεί με τη χρήση του xsl:message μέσα στη συνθήκη δοκιμής if, όπως στον παρακάτω κώδικα XSLT.
Η ειδοποίηση εντοπισμού σφαλμάτων εμφανίζεται από την τυπική οθόνη της εφαρμογής: Η επεξεργασία τερματίστηκε από το xsl:message στη γραμμή 21.
Κώδικας XML εισόδου:
SQL The Complete Reference James R. Groff McGraw-Hill 3rd
Ανατρέξτε στο στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
Κώδικας XSLT:
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
Ανατρέξτε στο στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
Αποτέλεσμα: Σημειώστε ότι μόλις ο αναλυτής συναντήσει την κενή ετικέτα τιμής, τερματίζει αμέσως την επεξεργασία, εξαιτίας της οποίας οι ετικέτες κλεισίματος των , και δεν θα έρθουν στο τέλος του αρχείου.
Βιβλία:-
Αναγνωριστικό βιβλίου | Όνομα βιβλίου | Όνομα συγγραφέα | Εκδότης | Τιμή | Έκδοση |
---|---|---|---|---|---|
5350192956 | Αναφορά προγραμματιστή XSLT | Michael Kay | Wrox | $40 | 4η |
3741122298 | Head First Java | Kathy Sierra | O'reilly | $19 | 1η |
Ανατρέξτε στο στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
#19) &,
Το στοιχείο ορίζει την παράμετρο του προτύπου αν ορίζεται μέσα σε αυτό . Μπορεί να οριστεί είτε μέσα ως παγκόσμια παράμετρος είτε μέσα ως τοπική παράμετρος του συγκεκριμένου προτύπου.
Η τιμή του μεταβιβάζεται/παρέχεται όταν το πρότυπο καλείται από το ή .
περνάει την τιμή της παραμέτρου που ορίζεται μέσα στο Το χαρακτηριστικό @name περιέχει το όνομα της παραμέτρου το οποίο πρέπει να ταιριάζει με το χαρακτηριστικό @name του στοιχείου. Το χαρακτηριστικό @Select χρησιμοποιείται για τον ορισμό μιας τιμής σε αυτή την παράμετρο.
Για την ανάκτηση της τιμής της παραμέτρου χρησιμοποιείται το σύμβολο του δολαρίου ($).
Πηγαίος κώδικας XML:
XSLT Programmer's Reference Michael Kay Wrox $40 4ο Head First Java Kathy Sierra O'reilly $19 1ο SQL The Complete Reference James R. Groff McGraw-Hill $45 3ο
Κώδικας XSLT:
Κατάλογος βιβλίων Όνομα :-
Όνομα βιβλίου::
Ανατρέξτε στο στιγμιότυπο οθόνης για την επισημασμένη περιοχή:
Έξοδος αποτελεσμάτων:
Λίστα βιβλίων Όνομα :-
Όνομα βιβλίου: Αναφορά προγραμματιστή XSLT
Όνομα βιβλίου: Head First Java
Όνομα βιβλίου: SQL The Complete Reference
#20)
χρησιμοποιείται για την εισαγωγή μιας άλλης ενότητας φύλλου στυλ μέσα στο τρέχον φύλλο στυλ. Αυτό βοηθά στην επίτευξη μιας αρθρωτής προσέγγισης ανάπτυξης XSLT.
Η προτεραιότητα των προτύπων που ορίζονται στο φύλλο στυλ του γονέα (το οποίο εισάγει ένα άλλο φύλλο στυλ) είναι υψηλότερη από το εισαγόμενο φύλλο στυλ (το οποίο εισάγεται από το φύλλο στυλ του γονέα).
Εάν ένα άλλο φύλλο στυλ έχει επίσης το ίδιο πρότυπο ονόματος όπως ορίζεται στο εσωτερικό του προτύπου που εισάγεται, τότε τα ξένα πρότυπα παρακάμπτονται από το δικό σας πρότυπο.
Το χαρακτηριστικό @href χρησιμοποιείται ως το URI του φύλλου στυλ που θέλετε να εισαγάγετε.
#21)
Όπως και το παραπάνω xsl:import, βοηθά επίσης στην επίτευξη μιας σπονδυλωτής προσέγγισης ανάπτυξης XSLT. Όλα τα πρότυπα που περιλαμβάνονται από έχουν την ίδια προτεραιότητα/προτεραιότητα με το φύλλο στυλ που καλεί. Είναι σαν να αντιγράφετε όλα τα πρότυπα από ένα άλλο φύλλο στυλ στο δικό σας φύλλο στυλ.
Το χαρακτηριστικό @href χρησιμοποιείται ως το URI του φύλλου στυλ που θέλετε να εισαγάγετε.
#22)
Αυτό το στοιχείο χρησιμοποιείται για τον προσδιορισμό του δέντρου αποτελεσμάτων στο αρχείο εξόδου. Περιέχει χαρακτηριστικά όπως το @method που μπορεί να έχει τιμές όπως 'XML', 'HTML', 'XHTML' και 'text' με προεπιλεγμένη την τιμή 'XML'.
Η @encoding καθορίζει την κωδικοποίηση χαρακτήρων που περιέχεται στο αρχείο εξόδου, όπως φαίνεται στο παρακάτω παράδειγμα encoding="UTF-16″, οι προεπιλεγμένες τιμές για XML ή XHTML θα μπορούσαν να είναι είτε UTF-8 είτε UTF-16. Η @indent καθορίζει την εσοχή του κώδικα εξόδου XML ή HTML, για XML η προεπιλεγμένη τιμή είναι 'no' και για HTML και XHTML η προεπιλεγμένη τιμή είναι yes.
#23)
Αυτό το στοιχείο χρησιμοποιείται για την απογύμνωση (αφαίρεση) των μη σημαντικών κενών διαστημάτων για το αναφερόμενο στοιχείο πηγής μέσα στο χαρακτηριστικό @element και αν θέλουμε να αφαιρέσουμε τα κενά διαστήματα από όλα τα στοιχεία τότε μπορούμε να χρησιμοποιήσουμε '*' μέσα στο χαρακτηριστικό @elements.
#24)
Αυτό το στοιχείο χρησιμοποιείται για τη διατήρηση των λευκών διαστημάτων για το αναφερόμενο στοιχείο προέλευσης μέσα στο χαρακτηριστικό @element και αν θέλουμε να διατηρήσουμε τα λευκά διαστήματα από όλα τα στοιχεία, τότε μπορούμε να χρησιμοποιήσουμε το '*' μέσα στο χαρακτηριστικό @elements.
Συμπέρασμα
Έτσι, σε αυτό το άρθρο, μάθαμε για το XSLT, τα συχνά χρησιμοποιούμενα στοιχεία XSLT, τη χρήση τους με παράδειγμα κώδικα πηγής και στόχου/αποτελέσματος, τη μετατροπή ή μετασχηματισμό του στοιχείου πηγής στο στοιχείο στόχου.
Συζητήσαμε επίσης τη σημασία του XPath για την ανάπτυξη κώδικα μετατροπής XSLT. Είδαμε τη δήλωση προτύπου XSL και την κλήση προτύπου &- τη μεταβίβαση παραμέτρων. Μάθαμε να δηλώνουμε παγκόσμιες και τοπικές μεταβλητές, τη χρήση τους στον κώδικα XSLT και τον τρόπο κλήσης τους.
Μάθαμε για διάφορα στοιχεία XSLT με διακλάδωση ή υπό όρους, όπως xsl:if, xsl:for-each, xsl:choose. Κατανοήσαμε τη διαφορά μεταξύ ρηχής και βαθιάς αντιγραφής, την ταξινόμηση των κόμβων, την αποσφαλμάτωση του κώδικα XSLT με τη χρήση του xsl:message, τη διαφορά μεταξύ ονομαστικών προτύπων και προτύπων αντιστοιχίας και τη μορφοποίηση της εξόδου με τη χρήση του xsl:output.
Σχετικά με τον συγγραφέα : Ο Himanshu P. είναι ένας έμπειρος επαγγελματίας στον τομέα της τεχνολογίας πληροφοριών. Έχει εργαστεί με πολυεθνικές εταιρείες ITC σε διάφορους επιχειρηματικούς τομείς και πολλαπλές τεχνολογίες. Η αγαπημένη ενασχόληση του Himanshu είναι η ανάγνωση περιοδικών και το blogging.