Μετατροπές από XML σε XML. Μετατροπή ενός δέντρου αντικειμένου σε XML

Ηλεκτρονική 23.06.2019

Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

Chercher Ας δούμε ένα χαρακτηριστικό παράδειγμα απόδοσης HTML.Δόθηκε μια λίστα

μουσικές συνθέσεις ως έγγραφο XML. Ρίτσαρντ Βάγκνερ Στο Σπήλαιο του Βασιλιά του Βουνού Γιόχαν Μπαχ Τοκάτα και Φούγκα σε Ρε ελάσσονα Αντόνιο Βιβάλντι εποχές. Καλοκαίρι. Καταιγίδα Τζουζέπε Βέρντι Θριαμβευτική Πορεία (Aida)

Ας εμφανίσουμε αυτό το έγγραφο ως λίστα HTML ul/li, όπως φαίνεται παρακάτω:

Για να το κάνουμε αυτό, χρησιμοποιούμε τον ακόλουθο μετασχηματισμό XSLT:

]>

  • Αυτός ο μετασχηματισμός θα μας επιστρέψει το ακόλουθο HTML:

    • Richard Wagner - Ride of the Valkyrie
    • Edvard Grieg - Στη σπηλιά του βασιλιά του βουνού
    • ...

    Ο μετασχηματισμός XSLT αποτελείται από τρία πρότυπα(xsl:πρότυπο). Κάθε πρότυπο εξυπηρετεί τη δική του ουσία, η οποία μας δίνει τη δυνατότητα να κάνουμε εύκολα αλλαγές και κάνει κατανοητό τον κώδικα.

    Εάν πρέπει να αλλάξουμε την εμφάνιση της λίστας (για παράδειγμα, προσθέστε κλάση), στη συνέχεια επεξεργαζόμαστε το πρότυπο match="PlayList" .

    Αν θέλουμε να αλλάξουμε την εμφάνιση των στοιχείων της λίστας, τότε είναι προφανές ότι αξίζει να αλλάξουμε το πρότυπο match="Track".

    Στην πραγματικότητα, το XSLT όχι μόνο μας δίνει τη δυνατότητα να διαχωρίζουμε δεδομένα και παρουσιάσεις (αυτή είναι η αποστολή οποιασδήποτε μηχανής προτύπων), αλλά μας επιτρέπει επίσης να διαχωρίζουμε αναπαραστάσεις διαφορετικών οντοτήτων.

    Φυσικά, σε πιο σύνθετες περιπτώσεις χωρισμού, αυτός ο διαχωρισμός μπορεί να είναι δύσκολο να επιτευχθεί. Είναι πολύ εύκολο να έρθετε σε μια κατάσταση όπου δημιουργείται ένα «θείο πρότυπο» που κάνει τα πάντα, και θα πρέπει επίσης να φοβάστε μήπως γλιστρήσετε σε «βολή πυροβολισμών» με ένα σωρό μικρά πρότυπα.

    Εντοπισμός σφαλμάτων XSLT

    Αυτό που μου αρέσει πολύ στο XSLT είναι οι δυνατότητες εντοπισμού σφαλμάτων του. Ο εντοπισμός σφαλμάτων βοηθά να δείτε ξεκάθαρα τη λογική της λειτουργίας XSTL, τη δομή του εγγράφου και τις τιμές μεταβλητών.

    Για παράδειγμα, ο εντοπισμός σφαλμάτων θα σας βοηθήσει να δείτε τι είδους οντότητα επεξεργάζεται το μοτίβο match="/".

    Στο Visual Εντοπισμός σφαλμάτων στούντιοΤο XSLT εκκινείται χρησιμοποιώντας το συνδυασμό πλήκτρων ALT+F5.

    Προσθέτοντας την έκφραση " . " (κουκκίδα) στο παράθυρο Watch XPath, θα δούμε ότι το τρέχον στοιχείο προτύπου είναι η ρίζα του εγγράφου. Εδώ μπορείτε να τοποθετήσετε ένα κοντέινερ div ή κάτι που σχετίζεται με ολόκληρο το έγγραφο XML.

    Εργασία με οντότητες XML

    Θα παρατηρήσετε ότι στα παραπάνω παραδείγματα υπάρχει μια οντότητα - Μπορούμε να τη χρησιμοποιήσουμε επειδή την ορίσαμε στην αρχή του εγγράφου XSLT

    ]>

    Έτσι, - εξάγεται ως χαρακτήρας με κωδικό - .

    Εάν πρέπει να εξάγετε τη συμβολοσειρά "ως έχει", τότε θα πρέπει να χρησιμοποιήσετε το CDATA ως εξής:

    xsl:στοιχείο κειμένου

    Θέλω να εστιάσω την προσοχή σας στο στοιχείο xsl:text. Σας επιτρέπει να ελέγχετε τι ακριβώς θα περιέχει το στοιχείο TEXT. Η σημασία του xsl:text είναι προφανής στην πράξη:

    Πρότυπο XSLT:

  • HTML που προκύπτει:

  • Antonio Vivaldi - Εποχές. Καλοκαίρι. Καταιγίδα
  • Όπως μπορείτε να δείτε από το παραπάνω παράδειγμα, η απουσία του στοιχείου xsl:text οδήγησε στην εμφάνιση επιπλέον αλλαγών γραμμής και διαστημάτων στο HTML.

    Φυσικά, μπορείτε να γράψετε XSLT χωρίς xsl:text, ως εξής:

  • Ένα τέτοιο πρότυπο είναι δύσκολο να διαβαστεί και υπάρχει μεγάλη πιθανότητα να εμφανιστούν σφάλματα σε αυτό κατά τη συντήρηση.

    Θα πρέπει να προσπαθήσετε να διασφαλίσετε ότι η μορφοποίηση του προτύπου XSLT δεν επηρεάζει το αποτέλεσμα του μετασχηματισμού. Αυτός είναι ο λόγος που πιστεύω ότι η χρήση του xsl:text είναι μια καλή πρακτική.

    Διακλάδωση

    Υπάρχουν ειδικά στοιχεία για διακλάδωση στο XSLT: xsl:if και xsl:choose. Αλλά νομίζω ότι αυτά τα εργαλεία χρησιμοποιούνται πολύ. Μια πιο ενδιαφέρουσα τεχνική είναι αυτή που σας επιτρέπει να αποφύγετε να γεμίσετε το πρότυπο με κλαδιά.

    Ας δούμε ένα παράδειγμα υλοποίησης κλάδων:

    Ας συμπληρώσουμε το προηγούμενο παράδειγμα με τη δυνατότητα εμφάνισης του μηνύματος "Η λίστα είναι κενή" εάν η Λίστα αναπαραγωγής δεν περιέχει στοιχεία κομματιού.

    Η λύση χρησιμοποιώντας xsl:choose θα ήταν:

    ]>

  • Μια λύση χρησιμοποιώντας ένα πρόσθετο πρότυπο θα ήταν:

    ]>

  • Η δεύτερη λύση, κατά τη γνώμη μου, φαίνεται πιο ωραία: η νέα λειτουργικότητα δεν πρόσθεσε νέο κώδικα στα παλιά πρότυπα, νέο πρότυποΑπομονωμένος όσο το δυνατόν περισσότερο.

    Εάν πρέπει να προσθέσετε μια εικόνα στο μήνυμα σχετικά με κενή λίστα, τότε στην πρώτη περίπτωση το στοιχείο xsl:when στο πρότυπο match="PlayList" πιθανότατα θα διογκωθεί. Αλλά στη δεύτερη περίπτωση, οι αλλαγές θα γίνουν μόνο σε ένα εξειδικευμένο πρότυπο.

    Στο προηγούμενο παράδειγμα, διαχωρίσαμε δύο εντελώς διαφορετικούς κλάδους για την απόδοση ενός στοιχείου λίστας. Τι γίνεται όμως αν τα κλαδιά διαφέρουν ελάχιστα; Εδώ η χρήση των xsl:if και xsl:choose είναι αρκετά δικαιολογημένη. Αλλά θα ήθελα να δείξω μια διαφορετική προσέγγιση: χρησιμοποιώντας την παράμετρο mode στο στοιχείο xsl:template.

    Στο επόμενο παράδειγμα θα κρεμάσουμε διαφορετικά στυλσε ζυγά και περιττά στοιχεία της λίστας.

    ]>

  • ακόμη και περιττός

    Βρόχοι και ταξινόμηση σε XSLT

    Το XSLT έχει ένα xsl:for-κάθε στοιχείο για βρόχους, αλλά ένα παρόμοιο αποτέλεσμα μπορεί να επιτευχθεί χρησιμοποιώντας κανονικά xsl:apply-templates .

    Θα εμφανίσουμε μια λίστα με τραγούδια ταξινομημένα κατά διάρκεια.

    • Richard Wagner - Ride of the Valkyrie - 280
    • Antonio Vivaldi - Εποχές. Καλοκαίρι. Καταιγίδα - 203
    • Johann Bach - Toccata και Fugue in D minor - 187
    • Edvard Grieg - In the Cave of the Mountain King - 163
    • Giuseppe Verdi - Θριαμβευτική Πορεία (Aida) - 103

    ]>

    ]>

  • Όπως μπορείτε να δείτε από τον κώδικα, η πρώτη επιλογή είναι συντομότερη και απλούστερη, αλλά παραβιάζει την αρχή του διαχωρισμού των ανησυχιών για τα πρότυπα. Το πρότυπο match="PlayList" περιέχει πλέον λογική για την εμφάνιση του στοιχείου Track.

    Δεν φαίνεται μεγάλο θέμα, αλλά ας φανταστούμε ένα πρόβλημα όπου η λίστα περιέχει συνθέσεις με και χωρίς αναγνωριστικό. Για τη σύνθεση με αναγνωριστικό, πρέπει να αποδώσετε τον σύνδεσμο και για τα υπόλοιπα, να εμφανίσετε μόνο το κείμενο.

    Επιλογή χρησιμοποιώντας xsl:for-each:

    ]>

    Επιλογή με χρήση xsl:apply-templates:

    ]>

  • Στην περίπτωση του xsl:for-each, έπρεπε να προσθέσουμε έναν κλάδο, και στην περίπτωση του xsl:apply-templates, χρειαζόταν να προσθέσουμε ένα νέο πρότυπο.

    Εάν το πρότυπο match="PlayList" περιείχε ήδη κλάδους και λογική, θα μας έπαιρνε λίγος χρόνος για να καταλάβουμε πού ακριβώς έπρεπε να εισαγάγουμε τον κλάδο. Η επιλογή xsl:apply-templates δεν έχει αυτό το μειονέκτημα, καθώς δηλώνουμε μόνο ένα νέο πρότυπο και δεν προσπαθούμε να εφαρμόσουμε παλιά.

    Η χρήση του xsl:for-each έχει έναν άλλο μεγάλο κίνδυνο. Εάν δείτε ένα τυχαίο κομμάτι κώδικα μέσα σε ένα μοτίβο match="PlayList", υποθέτετε ότι το τρέχον στοιχείο είναι PlayList, αλλά το xsl:for-each αλλάζει το περιβάλλον. Βλέποντας τον παρακάτω κώδικα:

    Θα χρειαστεί να κοιτάξετε προσεκτικά το πλαίσιο για να κατανοήσετε αυτό το select="." στην πραγματικότητα επιλέγει το τρέχον κομμάτι.

    Το πρότυπο mode="TrackName" match="Track" προστέθηκε για να αποφευχθεί η αντιγραφή του κώδικα που εμφανίζει τον τίτλο. Δεν το έκανα πριν γιατί δεν ήταν απαραίτητο. Μόλις παρατήρησα την αντιγραφή, έκανα αναμόρφωση και μετέφερα τη γενική λογική εμφάνισης σε ένα νέο πρότυπο.

    Το xsl:for-each είναι ένας τρόπος αποφυγής δημιουργίας οντοτήτων. Απλώς προσθέτετε τη λογική της οθόνης μέσα στο xsl:for-each και όλα λειτουργούν τέλεια. Τα προβλήματα ξεκινούν αργότερα, όταν το σώμα του βρόχου μεγαλώνει και η αναδιαμόρφωση του xsl:for-each είναι πολύ πιο δύσκολη από την αφαίρεση διπλού κώδικα.

    Σύναψη

    Το XSLT είναι ένα αρκετά ευέλικτο εργαλείο που σας επιτρέπει να λύσετε το πρόβλημά σας με διαφορετικούς τρόπους. Ωστόσο, όταν γράφετε XSLT αξίζει να δίνετε προσοχή ιδιαίτερη προσοχήδυνατότητα συντήρησης προτύπου.

    Ελπίζω το δικό μου πρακτικές συμβουλέςθα σας βοηθήσει να γράψετε πιο κατανοητό κώδικα.

    Μετασχηματισμοί XSLT

    Το XSLT έχει εξαιρετικές δυνατότητες χειρισμού δεδομένων σε έγγραφα XML. Για παράδειγμα, χρησιμοποιώντας ένα φύλλο στυλ XSLT, θα μπορούσα να μορφοποιήσω τα δεδομένα από το planets.xml σε πίνακας HTML. Φύλλα στυλπεριέχει κανόνες που έχουν οριστεί για τη μετατροπή ενός εγγράφου XML και μεγάλο μέρος του βιβλίου είναι αφιερωμένο στη δημιουργία φύλλων στυλ και στην εξήγηση του τρόπου λειτουργίας τους. Δείτε πώς φαίνεται το φύλλο στυλ XSLT planets.xsl (Λίστα 1.2), το οποίο μετατρέπει τα δεδομένα από το planets.xml σε πίνακα HTML (θα το αναλύσουμε στο Κεφάλαιο 2).

    Λίστα 1.2. πλανήτες.xsl

    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    Ο πίνακας των πλανητών

    Ο πίνακας των πλανητών

    Όπως μπορείτε να δείτε, αυτό το φύλλο στυλ XSLT μοιάζει με έγγραφο XML - και για καλό λόγο, γιατί αυτό είναι. Όλα τα φύλλα στυλ XSLT είναι επίσης έγγραφα XML, και αν ναι, πρέπει να είναι καλά μορφοποιημένα έγγραφα XML Με αυτά τα δύο έγγραφα - planets.xml (Λίστα 1.1) και το σχετικό φύλλο στυλ, planets.xsl (Λίστα 1.2) - εμείς. Θα λειτουργήσει σε όλο το βιβλίο εξετάζοντας διάφορους πιθανούς μετασχηματισμούς XSLT.

    Πώς θα συνδέσετε αυτό το φύλλο στυλ με το έγγραφο XML planets.xml; Όπως θα δούμε στο επόμενο κεφάλαιο, ένας τρόπος για να γίνει αυτό είναι με την οδηγία επεξεργασίας XML, χρησιμοποιώντας δύο χαρακτηριστικά. Το πρώτο χαρακτηριστικό είναι type , το οποίο θα πρέπει να οριστεί σε "text/xml" για να υποδείξει ότι χρησιμοποιείται ένα φύλλο στυλ XSLT. (Για να χρησιμοποιήσετε έναν άλλο τύπο φύλλου στυλ - cascading stylesheets (CSS), που χρησιμοποιούνται συνήθως με HTML - θα πρέπει να καθορίσετε "text/css".) Το δεύτερο χαρακτηριστικό είναι το href , το οποίο θα πρέπει να οριστεί σε ένα URI (θυμηθείτε ότι η XML δεν χρησιμοποιεί διευθύνσεις URL, Α URI, Uniform Resource Identifier) ​​φύλλα στυλ:

    Υδράργυρος

    .0553

    58.65

    1516

    .983

    43.4

    Τώρα με τη βοήθεια επεξεργαστή(επεξεργαστής) XSLT μπορείτε να εφαρμόσετε τον πίνακα planets.xsl στο planets.xml και να δημιουργήσετε νέο έγγραφο, πλανήτες.html . Ο επεξεργαστής XSLT δημιουργεί νέο αρχείο planets.html, το οποίο μπορείτε να δείτε στην Εικ. 1.2.

    Ρύζι. 1.2.Έγγραφο HTML που δημιουργήθηκε από τον επεξεργαστή XSLT

    Όπως φαίνεται στο Σχ. 1.2, ο επεξεργαστής XSLT διαβάζει τα δεδομένα από το planets.xml, εφαρμόζει τους κανόνες από το planets.xsl σε αυτόν και δημιουργεί έναν πίνακα HTML στο planets.html. Αυτό είναι το πρώτο μας παράδειγμα μετασχηματισμού XSLT.

    Τι πραγματικά συμβαίνει εδώ; Είχαμε ένα έγγραφο XML, planets.xml και ένα φύλλο στυλ XSLT, planets.xsl. Πώς όμως ενώθηκαν για να δημιουργήσουν planets.html;

    Από το βιβλίο XSLT συγγραφέας Holzner Stephen

    XSL = XSLT + XSL-FO Το ίδιο το XSLT είναι στην πραγματικότητα μέρος μιας μεγαλύτερης προδιαγραφής - της επεκτάσιμης γλώσσας φύλλου στυλ ή XSL. Το XSL έχει σχεδιαστεί για να προσδιορίζει την ακριβή, έως και χιλιοστά, μορφή εγγράφων. Το τμήμα μορφοποίησης του XSL, το οποίο αντιπροσωπεύει πολύ περισσότερα

    Από το βιβλίο XSLT Technology συγγραφέας Valikov Alexey Nikolaevich

    Μετασχηματισμοί XSLT-XSL Το XSLT σάς επιτρέπει να εργάζεστε απευθείας με το περιεχόμενο των εγγράφων XML. Για παράδειγμα, μπορεί να έχετε ένα τεράστιο έγγραφο XML που περιέχει όλα τα στατιστικά του μπέιζμπολ από την τελευταία σεζόν, αλλά μπορεί να σας ενδιαφέρουν μόνο τα στατιστικά για τους pitcher. Για εξαγωγή

    Από το βιβλίο του συγγραφέα

    Εκδόσεις XSLT Η προδιαγραφή XSLT έχει αναπτυχθεί πολύ πιο ενεργά από τις προδιαγραφές όλων των XSL. Η σύσταση XSLT 1.0 εγκρίθηκε τελικά στις 16 Νοεμβρίου 1999 και αυτή η έκδοση είναι η κύρια έκδοση του XSLT σήμερα. Στη συνέχεια εμφανίστηκε και, αν και αρχικά, το προσχέδιο του XSLT 1.1

    Από το βιβλίο του συγγραφέα

    Τι χρειάζεστε για έναν μετασχηματισμό XSLT Για να εκτελέσετε έναν μετασχηματισμό XSLT, όπως τη μετατροπή του planets.xml σε planets.html, χρειάζεστε έναν επεξεργαστή XSLT. Μπορείτε να χρησιμοποιήσετε το XSLT για να μετατρέψετε έγγραφα XML με τρεις τρόπους: χρησιμοποιώντας μεμονωμένα προγράμματα, που ονομάζονται επεξεργαστές XSLT.

    Από το βιβλίο του συγγραφέα

    Μετασχηματισμοί XSLT σε διακομιστές Ιστού Μπορείτε να πραγματοποιήσετε μετασχηματισμούς XSLT στον διακομιστή ιστού, έτσι ώστε το έγγραφο XML να μετατραπεί πριν το στείλει ο διακομιστής web στο πρόγραμμα περιήγησης. Εδώ ο πιο συνηθισμένος μετασχηματισμός είναι η μετατροπή ενός εγγράφου XML σε HTML, αλλά

    Από το βιβλίο του συγγραφέα

    Πόροι XSLT Μπορείτε να βρείτε στο Διαδίκτυο τεράστιο ποσότις πληροφορίες που χρειαζόμαστε. Λάβετε υπόψη ότι όλες οι διευθύνσεις URL που αναφέρονται παρακάτω υπόκεινται σε αλλαγές. οι λίστες θα είναι σχετικές για όσο διάστημα το θέλουν τα άτομα που συμμετείχαν στην υποστήριξη των απαριθμούμενων

    Από το βιβλίο του συγγραφέα

    XSLT Utilities Υπάρχουν επίσης πολλά βοηθητικά προγράμματα XSLT στο Διαδίκτυο—η ακόλουθη λίστα επισημαίνει τα πιο γνωστά: Microsoft XSL API Extension, http://msdn.microsoft.com/downloads/webtechnology/xml/xslisapi.asp. Απλοποιεί την εργασία της εκτέλεσης μετασχηματισμών XSLT από την πλευρά του διακομιστή. Μετατροπέας Microsoft XSL σε XSLT,

    Από το βιβλίο του συγγραφέα

    Δηλώσεις XSLT Το σώμα του προτύπου μπορεί να περιέχει έναν αριθμό στοιχείων XSLT που ονομάζονται δηλώσεις: ; ; ; ; ; ; ; ; ; ; ; ;

    Από το βιβλίο του συγγραφέα

    Επεκτασιμότητα XSLT Παρά τη φαινομενική πολυπλοκότητα του XSLT, είναι περιορισμένη από πολλές απόψεις σε σύγκριση με τις γλώσσες προγραμματισμού και οι επεκτάσεις XSLT άρχισαν αμέσως να εμφανίζονται στους επεξεργαστές XSLT. Για παράδειγμα, ο Saxon εισήγαγε το στοιχείο , εφαρμόζοντας σε XSLT το πρότυπο για

    Από το βιβλίο του συγγραφέα

    Από το βιβλίο του συγγραφέα

    Διαφορές μεταξύ XSLT 1.1 και XSLT 1.0 Έλλειψη θραύσματος δέντρου αποτελεσμάτων Η κύρια και πιο σημαντική διαφορά μεταξύ XSLT 1.1 και XSLT 1.0 είναι ότι ο τύπος δεδομένων που είναι γνωστός στο XSLT 1.0 ως θραύσμα δέντρου αποτελέσματος βρίσκεται στο XSLT 1.1. απών. Αντίθετα, η έκδοση 1.1 χρησιμοποιεί πολλούς κόμβους,

    Από το βιβλίο του συγγραφέα

    Διαφορές μεταξύ XSLT 2.0 και XSLT 1.1 Πριν αρχίσουμε να περιγράφουμε τις διαφορές μεταξύ της δεύτερης έκδοσης του XSLT και της έκδοσης 1.1 (και, κατά συνέπεια, 1.0), θα πρέπει να κάνουμε μια σημαντική σημείωση. Συμφωνίες Άδειας ΧρήσηςΗ κοινοπραξία W3 δεν επιτρέπει την αποκάλυψη εσωτερικού υλικού στο ευρύ κοινό

    22. DOM XML. Μετατροπή εγγράφων XML

    Μοντέλο XML DOM. SAX: πλεονεκτήματα και μειονεκτήματα. Προδιαγραφές XSL. XSLT και XPath. XSL-FO. XQuery.

    Για την προγραμματική επεξεργασία εγγράφων XML, χρησιμοποιείται το μοντέλο XML DOM, το οποίο ορίζει τα αντικείμενα και τις ιδιότητες όλων των στοιχείων XML και τις μεθόδους (διεπαφή) πρόσβασης σε αυτά. Με άλλα λόγια, το XML DOM περιγράφει τον τρόπο απόκτησης, τροποποίησης, προσθήκης και διαγραφής στοιχείων XML.

    Σύμφωνα με DOM:

      οτιδήποτε περιέχεται σε ένα έγγραφο XML είναι ένας κόμβος.

      παρουσιάζεται ολόκληρο το έγγραφο κόμβος εγγράφου;

      κάθε στοιχείο XML – κόμβος στοιχείου;

      κείμενο μέσα σε στοιχεία XML - κόμβος κειμένου;

      κάθε χαρακτηριστικό - κόμβος χαρακτηριστικών;

      σχόλια - κόμβοι σχολίων.

    Ένα έγγραφο XML σύμφωνα με το μοντέλο XML DOM αναπαρίσταται ως δέντρο κόμβων, με:

      Όλοι οι κόμβοι δέντρων έχουν συγκεκριμένες σχέσεις μεταξύ τους.

      Όλοι οι κόμβοι είναι προσβάσιμοι μέσω του δέντρου. Το περιεχόμενό τους μπορεί να αλλάξει ή να διαγραφεί. μπορούν να προστεθούν νέα στοιχεία στο δέντρο.

      Το δέντρο ξεκινά από τον ριζικό κόμβο και διακλαδίζεται στους κόμβους κειμένου στην κορυφή. χαμηλότερο επίπεδοδέντρο.

      Όλοι οι κόμβοι είναι μέσα ιεραρχικές σχέσειςμεταξύ τους.

      Αυτές οι σχέσεις περιγράφονται χρησιμοποιώντας τις έννοιες του γονέα, του παιδιού και του παιδιού (όλα τα παιδιά στο ίδιο επίπεδο).

    Μια εναλλακτική διεπαφή για την επεξεργασία εγγράφων XML είναι ΣΑΞ.

    SAX ( Απλό API για XML) - διεπαφή προγραμματισμού εφαρμογής για έναν αναλυτή με διαδοχική πρόσβαση σε XML. Αυτή η διεπαφή παρέχει έναν μηχανισμό για την ανάγνωση δεδομένων από ένα έγγραφο XML.

    Ο αναλυτής SAX είναι ασφαλής για νήματα και διαχειρίσιμος εκδηλώσεις. Η δουλειά του χρήστη SAX API είναι να περιγράφει μεθόδους που καλούνται από συμβάντα που συμβαίνουν κατά την ανάλυση ενός εγγράφου.

    Τέτοια γεγονότα μπορεί να είναι τα ακόλουθα:

      κόμβος κειμένου?

      Κόμβος στοιχείου XML.

      Οδηγίες επεξεργασίας XML.

      Σχόλιο XML.

    Εκδηλώσειςπροκαλούνται από την εμφάνιση τόσο της ετικέτας ανοίγματος όσο και της ετικέτας κλεισίματος οποιουδήποτε από αυτά τα στοιχεία του εγγράφου. ΙδιότηςΗ XML αντιμετωπίζεται επίσης ως συμβάν.

    Η ανάλυση εγγράφων είναι μονής κατεύθυνσης (δηλαδή, δεν υπάρχει ανάδρομη κίνηση).

    Σε αντίθεση με το DOM, δεν υπάρχει επίσημη προδιαγραφή για το SAX. Θεωρείται ως κανονιστικό Υλοποίηση JavaΣΑΞ.

    Πρέπει να σημειωθούν τα ακόλουθα πλεονεκτήματα και μειονεκτήματα του SAX.

    Φόντα:

      Η κατανάλωση μνήμης είναι σημαντικά μικρότερη (ανάλογα με το μέγιστο βάθος του δέντρου εγγράφου και τον αριθμό των χαρακτηριστικών σε κόμβος στοιχείου) παρά στην περίπτωση του DOM (που απαιτεί την αποθήκευση ολόκληρου του δέντρου εγγράφων στη μνήμη).

      Η ταχύτητα εργασίας είναι υψηλότερη λόγω της μείωσης του χρόνου που δαπανάται για την κατανομή μνήμης για στοιχεία δέντρου στην περίπτωση του DOM.

      Η ανάγνωση ροής δεδομένων από το δίσκο δεν είναι δυνατή στην περίπτωση του DOM. Εάν δεν υπάρχει αρκετός χώρος στη μνήμη για να χωρέσει ολόκληρο το έγγραφο, τότε η χρήση του SAX είναι η μόνη επιλογή.

    Ελαττώματα:

      Η διαδικασία επικύρωσης απαιτεί πρόσβαση σε ολόκληρο το έγγραφο ταυτόχρονα.

      Αυτό απαιτείται επίσης στην περίπτωση του μετασχηματισμού XSLT.

    Εάν φορτώσετε ένα "καθαρό" έγγραφο XML σε ένα πρόγραμμα περιήγησης ιστού, θα δείτε τη δομή δέντρου αυτού του εγγράφου:

    Αυτή είναι ακριβώς η κύρια διαφορά μεταξύ XML και HTML, δηλαδή ο διαχωρισμός της δομής του εγγράφου και η παρουσίασή του στο πρόγραμμα περιήγησης. Ο συγκεκριμένος τύπος εγγράφου XML περιγράφεται ξεχωριστά με χρησιμοποιώντας CSSή XSL.

    Το CSS και το XSL είναι θεμελιωδώς διαφορετικές τεχνολογίες που έχουν μόνο μερικούς τομείς εφαρμογής. Η μορφοποίηση CSS εφαρμόζεται στο έγγραφο HTML από το πρόγραμμα περιήγησης που είναι ενεργοποιημένο πλευρά πελάτη, και συνήθως εκτελείται μετασχηματισμός XSL στον διακομιστή, μετά την οποία το αποτέλεσμα αποστέλλεται στο πρόγραμμα περιήγησης πελάτη. Το XSL βασίζεται σε XML, κάνοντας το XSL περισσότερο εύκαμπτοςΚαι παγκόσμιος. Οι προγραμματιστές έχουν την ευκαιρία να χρησιμοποιήσουν εργαλεία έλεγχος της ορθότηταςμεταγλώττιση λιστών στυλ (χρησιμοποιώντας σχήματα XML).

    Με τη χρήση XSLμπορείτε να μετατρέψετε ένα έγγραφο XML στη μορφή HTML, WML, RTF, PDF, SQL, SWF, καθώς και σε άλλο XMLΚαι XSLέγγραφο. Το XSL καθορίζει πώς θα μορφοποιηθεί το έγγραφο, πού και πώς θα τοποθετηθούν τα δεδομένα.

    Η προδιαγραφή XSL αποτελείται από τρία μέρη:

      XSLT(XSL Transformations), μια γλώσσα για τον μετασχηματισμό XML.

      XPath- μια γλώσσα διαδρομής και έκφρασης που χρησιμοποιείται στο XSLT για πρόσβαση σε μεμονωμένα μέρη ενός εγγράφου XML.

      XSL-FO(XSL Formatting Objects), μια γλώσσα για διάταξη XML.

    Ο πιο συνηθισμένος μηχανισμός μετασχηματισμού XSLT για συστήματα που εκτελούνται πλατφόρμα MicrosoftΤα Windows είναι MSXML; για συστήματα που βασίζονται στο GNU - xsltproc.

    Για να επεξεργαστείτε ένα έγγραφο XML χρησιμοποιώντας XSL, πρέπει να γράψετε τις ακόλουθες οδηγίες στο έγγραφο XML:

    < !-- ... -- >

    Επιστρέφοντας στο παράδειγμα που συζητήθηκε προηγουμένως, προσθέτοντας στο αρχείο XMLσύνδεσμο προς το αρχείο XSL, λαμβάνουμε τον ακόλουθο κωδικό σήμανσης:

    Έλεγχος του γραμματοκιβωτίου σας

    [email προστατευμένο]

    [email προστατευμένο]

    [email προστατευμένο]

    Δοκιμή

    Αυτό το email δεν είναι ανεπιθύμητο

    [email προστατευμένο]

    [email προστατευμένο]

    Ενδιαφέρουσα προσφορά

    Μετά τη λήψη του παρόντος εγγράφουσε ένα πρόγραμμα περιήγησης ιστού η εμφάνισή του θα αλλάξει δραματικά:

    Τα περιεχόμενα του αρχείου XSL mailbox.xsl δίνονται παρακάτω:

    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    Γραμματοκιβώτιο

    ΟνομαΜάζαΑκτίναΗμέρα

    Από: Να:

    ,

    Θέμα:CCΚοινοποιώ




    XSLT και XPath

    Ως αποτέλεσμα της εφαρμογής ενός φύλλου στυλ XSLT, που αποτελείται από ένα σύνολο προτύπων, σε ένα έγγραφο XML (δέντρο πηγής), σχηματίζεται ένα τελικό δέντρο, το οποίο μπορεί να είναι διαφορετικό Δομή XML, έγγραφο HTMLή τακτικά κείμενο. Οι κανόνες για την επιλογή δεδομένων από το δέντρο προέλευσης είναι γραμμένοι σε γλώσσα ερωτήματος XPath. Το XSLT χρησιμοποιείται κυρίως στον προγραμματισμό ιστού και τη δημιουργία αναφορών.

    Χάρη στο XSLT, πραγματοποιείται ο διαχωρισμός των δεδομένων από την παρουσίασή του στο πλαίσιο του παραδείγματος MVC (Μοντέλο-προβολή-ελεγκτής).

    XPath(XML Path Language) - μια γλώσσα για την αναζήτηση στοιχείων εγγράφου XML. Το XPath αναπτύχθηκε για να παρέχει πρόσβαση σε μέρη ενός εγγράφου XML σε αρχεία μετασχηματισμού XSLT και είναι ένα πρότυπο W3C. Το XPath χρησιμοποιεί μια συμπαγή σύνταξη που είναι διαφορετική από την XML. Από την έκδοση 2.0, το XPath είναι αναπόσπαστο μέρος της γλώσσας XQuery. Το XPath έχει σχεδιαστεί για να βοηθά στη διέλευση όλων των ειδών δέντρων, στην απόκτηση των απαραίτητων στοιχείων από έναν άλλο κλάδο σε σχέση με το σημείο διέλευσης, στην αναγνώριση των προγόνων, των απογόνων και των ιδιοτήτων των στοιχείων. Αυτή είναι μια πλήρης γλώσσα πλοήγησης δέντρων.

    Οι διαδρομές διευθύνσεων χρησιμοποιούνται για τον εντοπισμό στοιχείων στο δέντρο εγγράφων.

    Κάθε βήμα διευθυνσιοδότησηςαποτελείται από τρία μέρη:

      άξονας, για παράδειγμα παιδί:: ;

      προϋποθέσεις για τον έλεγχο των κόμβων, για παράδειγμα, ονόματα των στοιχείων του εγγράφου σώμα, html.

      κατηγόρημα, όπως χαρακτηριστικό::class .

    Μια προσθήκη στον πυρήνα της γλώσσας είναι ένα σύνολο συναρτήσεων που χωρίζονται σε 5 ομάδες: συστήματοςλειτουργίες, συναρτήσεις με σκηνικά, σειράλειτουργίες, λογικόςλειτουργίες, αριθμητικόςλειτουργίες.

    XSL-FO

    XSL-FO(επεκτάσιμο Γλώσσα σήμανσηςΤο Formatting Objects είναι μια προτεινόμενη από το W3C γλώσσα σήμανσης για προεκτυπωμένα υλικά. Ουσιαστικά , Η XSL-FO είναι μια ενοποιημένη γλώσσα παρουσίασης. Δεν έχει σημασιολογική σήμανση (όπως το HTML) και αποθηκεύει όλα τα δεδομένα του εγγράφου εσωτερικά (σε αντίθεση με το CSS, το οποίο τροποποιεί την προεπιλεγμένη παρουσίαση για εξωτερικό HTMLή έγγραφο XML).

    Ως αποτέλεσμα της εφαρμογής Μετασχηματισμοί XSLTστο έγγραφο προέλευσης XML, λαμβάνεται η περιγραφή του στη γλώσσα XSL-FO. Επεξεργαστής FOμετατρέπει ένα έγγραφο XSL-FO σε κάποια αναγνώσιμη ή/και εκτυπώσιμη μορφή. Η πιο συχνά χρησιμοποιούμενη μετατροπή είναι PDF ή PS. Ορισμένοι επεξεργαστές FO μπορούν να εξάγουν αρχεία RTF ή απλώς να εμφανίζουν το έγγραφο σε ένα παράθυρο.

    XQuery

    XQueryείναι μια γλώσσα ερωτημάτων που έχει σχεδιαστεί για την επεξεργασία δεδομένων σε μορφή XML.

    Επί του παρόντος, ομάδες εργασίας της κοινοπραξίας W3C εργάζονται για την ανάπτυξη αυτού του προτύπου. αυτής της γλώσσας, με την προσθήκη εκφράσεων για αναζήτηση ελεύθερου κειμένου και για αλλαγές σε έγγραφα και βάσεις δεδομένων XML, καθώς και για διαδικαστικές πράξεις.

    Εντός του προτύπου SQL: 2006έχουν αναπτυχθεί μηχανισμοί για την ενσωμάτωση XQuery-ερωτήσεις απευθείας σε ερωτήματα SQL.

    Σχόλιο: Συζητά τη δημιουργία κώδικα χρησιμοποιώντας μετασχηματισμούς XSLT. Μελετάται η σύνταξη XSLT, τα χαρακτηριστικά εφαρμογής μετασχηματισμών, καθώς και η εκτέλεση λειτουργιών όπως φιλτράρισμα, ταξινόμηση και επιλογή υπό όρους σε πρότυπα. Εκτέλεση μετασχηματισμού μέσω προγραμματισμού σε C#. Πλεονεκτήματα και μειονεκτήματα της τεχνολογίας.

    Γλώσσα μετασχηματισμού XSLT

    Στη δεύτερη διάλεξη εξετάσαμε ήδη ένα παράδειγμα χρησιμοποιώντας XSLT. Σε αυτή τη διάλεξη θα εξετάσουμε αυτή την τεχνολογία με περισσότερες λεπτομέρειες. XSL (EXtensible Stylesheet Language)σημαίνει Extensible Style Language και είναι μια γλώσσα για τη δημιουργία στυλ για έγγραφα XML. XSLT (Μετασχηματισμοί XSL)είναι η γλώσσα μετασχηματισμού XSL και αποτελεί μέρος αυτής. Το στυλ XSLT έχει σχεδιαστεί για να μεταμορφώνει την ιεραρχική δομή και τη μορφή ενός εγγράφου XML. Τα αποτελέσματα του μετασχηματισμού μπορεί να είναι ένα αρχείο XML, αρχείο κειμένου , κώδικα προγράμματος, αρχείο HTML , αρχείο μέσα Μορφή PDF, και ούτω καθεξής. Αυτή η γλώσσα παρέχει ισχυρές δυνατότητες χειρισμού δεδομένων, πληροφοριών και κειμένου σε ιεραρχική μορφή.

    Και αυτό ακριβώς χρειάζεται για τη δημιουργία κώδικα. Η χρήση XSLT μπορεί να βοηθήσει πολύ στη δημιουργία κώδικα. Επιπλέον, παρέχει μια βολική εναλλακτική λύση στην τεχνολογία προτύπων T4.

    Το XSLT αναπτύχθηκε από μια κοινοπραξία W3C (Κόσμος Wide WebΚονσόρτσιουμ). Η πρώτη έκδοση της γλώσσας, XSLT 1.0, έγινε σύσταση στις 16 Νοεμβρίου 1999 και η XSLT 2.0 έγινε σύσταση στις 23 Ιανουαρίου 2007. Και οι δύο εκδόσεις χρησιμοποιούνται αρκετά ενεργά και σε αυτή τη διάλεξη θα δούμε τη βασική λειτουργικότητα που είναι κοινή σε αυτές. Αυτό σημαίνει ότι θα εξετάσουμε κυρίως την πρώτη έκδοση. Θα αναφέρουμε και κάποιες εντολές από τη δεύτερη έκδοση.

    Πώς λειτουργεί το XSLT

    Το μοντέλο XSLT περιλαμβάνει τα ακόλουθα μέρη:

    • έγγραφα XML,
    • Στυλ XSLT,
    • Επεξεργαστής XSLT,
    • έγγραφα εξόδου.

    Έγγραφα XMLείναι δεδομένα εισόδου που πρέπει να μετατραπούν σε άλλα έγγραφα. Εγγραφο Στυλ XSLTείναι ένα καλά διαμορφωμένο έγγραφο XML και περιέχει ένα σύνολο κανόνων για την εκτέλεση του μετασχηματισμού. Με άλλα λόγια, ένα έγγραφο στυλ είναι ένα πρότυπο.

    Επεξεργαστής XSLTείναι μια εφαρμογή που δέχεται έγγραφα XML και στυλ XSLT ως είσοδο. Εκτελεί μετασχηματισμό, δηλαδή εφαρμόζει ένα σύνολο κανόνων σε στυλ XSLT σε έγγραφα XML. Το αποτέλεσμα αυτής της δουλειάς είναι έγγραφα εξόδου.

    Οι επεξεργαστές XSLT έχουν πολλές υλοποιήσεις και είναι ενσωματωμένοι σε πολλά προγράμματα περιήγησης όπως Internet Explorer, Firefox, Mozilla, Opera και άλλα. Ο Internet Explorer χρησιμοποιεί το εργαλείο MSXML που αναπτύχθηκε από τη Microsoft. Ο επεξεργαστής XSLT έχει ενσωματωθεί στον Internet Explorer από την έκδοση 4.5. Η παραγόμενη έξοδος των παραδειγμάτων σε αυτήν τη διάλεξη μπορεί να προβληθεί ανοίγοντας τα αρχεία XML σε ένα από τα προγράμματα περιήγησης. Στο τέλος της διάλεξης, θα δούμε τις δυνατότητες εκκίνησης του μετασχηματισμού προγραμματικά, χρησιμοποιώντας τα κατάλληλα μαθήματα γλώσσας προγραμματισμού.

    XPath

    Ένα άλλο μέρος της τεχνολογίας XSL είναι η γλώσσα XPath, σχεδιασμένο για πρόσβαση σε κόμβους σε ένα έγγραφο XML καθορίζοντας διαδρομές και εκφράσεις. Η γλώσσα Xpath χρησιμοποιείται σε αρχεία στυλ για πλοήγηση σε έγγραφα XML, προσδιορίζοντας τμήματα του εγγράφου προέλευσης XML που ταιριάζουν με ένα ή περισσότερα προκαθορισμένα μοτίβα. Όταν βρεθεί μια αντιστοίχιση, ο επεξεργαστής XSLT θα εφαρμόσει τους κατάλληλους κανόνες από το αρχείο στυλ σε αυτό και θα το μετατρέψει σε μέρος του εγγράφου που προκύπτει. Τα αρχεία στυλ XSLT κάνουν έντονη χρήση των εκφράσεων XPath.

    Χρησιμοποιώντας XSLT

    Η γλώσσα XSLT αποτελείται από πολλές οδηγίες γραμμένες ως ετικέτες. Το όνομα κάθε εντολής συνήθως αρχίζει με τους χαρακτήρες xsl. Για να πραγματοποιηθεί ο μετασχηματισμός, το έγγραφο στυλ XSLT πρέπει να είναι έγκυρο έγγραφο XML.

    Για να μετατρέψετε ένα έγγραφο XML, πρέπει να προσθέσετε μια δήλωση παρόμοια με την ακόλουθη στην αρχή του εγγράφου:

    Ένα φύλλο στυλ XSL περιέχει συνήθως πολλά στοιχεία, το πιο σημαντικό από τα οποία είναι το στοιχείο xsl: φύλλο στυλ. Είναι αυτός που υποδεικνύει ότι αυτό το αρχείο XML είναι αρχείο στυλ. Εκτός από αυτό, μπορεί να περιέχει άλλα στοιχεία, για παράδειγμα xsl: template, xsl:value-of. Το έγγραφο XML και το αρχείο στυλ διαβιβάζονται στον επεξεργαστή XSLT, ο οποίος επεξεργάζεται αυτά τα αρχεία, εκτελεί το μετασχηματισμό και εξάγει το αποτέλεσμα του μετασχηματισμού.

    Παρακάτω είναι ένα έγγραφο XML που περιέχει μια λίστα γλωσσών προγραμματισμού.

    ΝΤΟ# Visual Basic Δελφοί Prolog Παράδειγμα 5.1.

    Αρχείο Languages.xml Πρέπει να εμφανίσετε αυτήν τη λίστα σεΜορφή HTML . Για το σκοπό αυτό χρησιμοποιούμε τις οδηγίες xsl :για-κάθε

    , το οποίο θα εφαρμόσει μέρος του προτύπου σε ενότητες εγγράφου των οποίων τα ονόματα καθορίζονται στο χαρακτηριστικό Select. Στην περίπτωσή μας, θα καθορίσουμε select="languages/language" .

    Το αρχείο στυλ που θα χρησιμοποιηθεί είναι:

    -

    Οι αγαπημένες μου γλώσσες:

    Παράδειγμα 5.2. . Για το σκοπό αυτό χρησιμοποιούμε τις οδηγίεςΓλώσσες αρχείων.xsl xsl:value-ofκαι το καθορισμένο χαρακτηριστικό select="." . Αυτό σημαίνει ότι ο επεξεργαστής πρέπει να επιλέξει το περιεχόμενο κειμένου του τρέχοντος στοιχείου στο έγγραφο. Εκτός από την εμφάνιση περιεχομένου, μπορείτε να καθορίσετε τα ονόματα συγκεκριμένων ετικετών, καθώς και χαρακτηριστικά για να επιλέξετε τις τιμές που είναι αποθηκευμένες σε αυτές. Παραδείγματα θα συζητηθούν παρακάτω.

    Ας ανοίξουμε το αρχείο XML μέσω του Internet Explorer ή άλλου προγράμματος περιήγησης. Θα εμφανιστεί το ακόλουθο κείμενο:

    Οι αγαπημένες μου γλώσσες:

    • Visual Basic
    • Δελφοί
    • Prolog

    Ένα από τα πιο σημαντικά στοιχεία στο στυλ είναι xsl: template. Χρησιμεύει για τον ορισμό ενός επαναχρησιμοποιήσιμου προτύπου και περιέχει τους κανόνες με τους οποίους θα μετασχηματιστεί το έγγραφο XML. Το χαρακτηριστικό αντιστοίχισης περιέχει μια έκφραση για την επιλογή κόμβων στους οποίους θα εφαρμοστεί το πρότυπο. Μπορεί επίσης να υπάρχει ένα χαρακτηριστικό ονόματος. Σε αυτήν την περίπτωση, είναι δυνατό να καλέσετε ένα πρότυπο με το όνομα με μια οδηγία xsl:apply-templates.

    Για να επαναλάβετε την έξοδο του προτύπου για κάθε στοιχείο του εγγράφου, χρησιμοποιήστε την οδηγία . Για το σκοπό αυτό χρησιμοποιούμε τις οδηγίες. Το μοτίβο εκτελείται για κάθε στοιχείο που ταιριάζει με τη συνθήκη που καθορίζεται στο χαρακτηριστικό Select.

    Οδηγίες xsl:value-ofχρησιμεύει για την αξιολόγηση της έκφρασης που είναι γραμμένη στο χαρακτηριστικό Select και στη συνέχεια εμφανίζει το αποτέλεσμα στη θέση όπου βρίσκεται το ίδιο το στοιχείο.

    Διήθηση

    Εξετάσαμε την περίπτωση όπου διαβάζονται οι τιμές κάθε κόμβου. Ωστόσο, συχνά υπάρχει η ανάγκη επιλογής μέρους μόνο των δεδομένων, δηλαδή πρέπει να φιλτραριστούν. Τα πρότυπα XSLT υποστηρίζουν δύο μεθόδους φιλτραρίσματος.

    Ένα από αυτά είναι η χρήση της ιδιότητας Select της πρότασης . Για το σκοπό αυτό χρησιμοποιούμε τις οδηγίες, και το δεύτερο είναι η εφαρμογή της ιδιότητας αντιστοίχισης του στοιχείου xsl: template. Θα εξετάσουμε τη χρήση αντιστοίχισης αργότερα, αλλά προς το παρόν θα εξετάσουμε την επιλογή .

    Ας αλλάξουμε λίγο το αρχείο δεδομένων: προσθέστε ένα χαρακτηριστικό ψηλά, υποδεικνύοντας εάν μια γλώσσα από τη λίστα μας είναι γλώσσα υψηλό επίπεδο. Θα επεκτείνουμε επίσης τη λίστα των γλωσσών.

    ΝΤΟ# Visual Basic Δελφοί Prolog Συμβολομεταφράστης Ιάβα Perl Παράδειγμα 5.3.

    Γλώσσες αρχείων4.xml ψηλάΣημειώστε ότι η τιμή false για το χαρακτηριστικό

    αξίζει μόνο για την τιμή "Assembler" . Ας αλλάξουμε λίγο το αρχείο του φύλλου στυλ:

    -
    Γλώσσες υψηλού επιπέδου:

    Παράδειγμα 5.4. Γλώσσες αρχείων4.xslΣτην ενότητα [@ ψηλά high="true"]

    καθορίζουμε ότι μόνο εκείνοι οι κόμβοι εγγράφου έχουν το χαρακτηριστικό

    έχει την τιμή "αληθής" . Το σύμβολο @ είναι ένα σύμβολο που υποδεικνύει ότι ακολουθείται από ένα όνομα χαρακτηριστικού.

    • Visual Basic
    • Δελφοί
    • Prolog

    Ας δούμε το αποτέλεσμα:

    Γλώσσες υψηλού επιπέδου:

    Όπως μπορείτε να δείτε, η τιμή "Assembler" δεν εμφανίζεται στη λίστα των γλωσσών, δηλαδή, ο επεξεργαστής XSLT φιλτράρει τα δεδομένα σύμφωνα με τις καθορισμένες συνθήκες. . Για το σκοπό αυτό χρησιμοποιούμε τις οδηγίεςχρησιμεύει για την ταξινόμηση του αποτελέσματος, για την ένδειξη της σειράς διέλευσης των κόμβων του εγγράφου κατά την εκτέλεση ενός μετασχηματισμού. Τα πεδία προς ταξινόμηση παρατίθενται χωρισμένα με ερωτηματικά και έχουν επίσης τα σημάδια «+» ή «-» μπροστά από τα ονόματά τους, που υποδεικνύουν ταξινόμηση σε αύξουσα ή φθίνουσα σειρά.

    Ας εξετάσουμε μια ελαφρώς τροποποιημένη έκδοση του εγγράφου - αντί για το χαρακτηριστικό ψηλάθα χρησιμοποιήσουμε το στοιχείο επίπεδο, το οποίο παίρνει τιμές ψηλάή χαμηλός. Και θα γράψουμε το όνομα της γλώσσας στο στοιχείο όνομα.

    ΝΤΟ# ψηλά Visual Basic ψηλά Δελφοί ψηλά Prolog ψηλά Συμβολομεταφράστης χαμηλός Ιάβα ψηλά Perl ψηλά Παράδειγμα 5.5.

    Γλώσσες αρχείων6.xml ΣΕπαρακάτω πίνακα . Για το σκοπό αυτό χρησιμοποιούμε τις οδηγίεςστυλ για οδηγίες

    αξίζει μόνο για την τιμή "Assembler" . Ας αλλάξουμε λίγο το αρχείο του φύλλου στυλ:

    -
    εφαρμόστε το χαρακτηριστικό order-by με την τιμή +name , όπου το σύμβολο συν σημαίνει ότι πρέπει να ταξινομήσετε με αύξουσα σειρά.

    Παράδειγμα 5.6.

    Γλώσσες αρχείων6.xsl

    Στο χαρακτηριστικό select, φιλτράρουμε με την τιμή του στοιχείου επιπέδου. Επίσης στο χαρακτηριστικό select της δήλωσης

    Υδράργυρος

    .0553

    58.65

    1516

    .983

    43.4

    Μετατροπές XML σε XML

    .815

    116.75

    3716

    .943

    66.8

    Οι μετασχηματισμοί XML-σε-XML θεωρούνται μερικές φορές ως SQL για τον Ιστό, επειδή επιτρέπουν την εκτέλεση ερωτημάτων βάσης δεδομένων σε έγγραφα XML. Παρακάτω είναι ένα παράδειγμα. Το αρχείο planets.xml που χρησιμοποιούμε περιέχει αρκετά δεδομένα για κάθε πλανήτη: ΑφροδίτηΤι θα γινόταν αν χρειαζόμασταν μόνο ένα υποσύνολο αυτών των δεδομένων - για παράδειγμα, το όνομα και τη μάζα κάθε πλανήτη; Με όρους βάσης δεδομένων, το planets.xml είναι ένας πίνακας και θέλουμε να δημιουργήσουμε νέο τραπέζι, που περιέχει ένα υποσύνολο των δεδομένων από το πρώτο. Στις βάσεις δεδομένων αυτό γίνεται

    Γλώσσα SQL , και για έγγραφα XML μπορούμε να χρησιμοποιήσουμε XSLT.Η λίστα 1.6 δείχνει νέα έκδοση planets.xsl, το οποίο εκτελεί τον απαιτούμενο μετασχηματισμό: μόνο το όνομα και η μάζα κάθε πλανήτη επιλέγονται και αποστέλλονται στο έγγραφο εξόδου. Συγκεκριμένα, σημειώστε ότι κάνουμε μετασχηματισμό XML σε XML, επομένως χρησιμοποιώ το στοιχείο

    , του οποίου το χαρακτηριστικό μέθοδος έχει οριστεί σε "xml" (στην πραγματικότητα, ο τύπος δεδομένων εξόδου είναι συνήθως XML, αλλά εάν ο επεξεργαστής XSLT δει την ετικέτα

    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    , συνήθως δημιουργεί HTML από προεπιλογή).

    Λίστα 1.6. Επιλέγοντας μόνο όνομα και μάζα

    Υδράργυρος

    C:planets>java org.apache.xalan.xslt.Process -IN planets.xml -XSL planets.xsl -OUT new.xml

    Μετατροπές XML σε XML

    Έτσι φαίνεται το έγγραφο XML που προκύπτει, new.xml:

    .0553(Γη = 1)

    .815(Γη = 1)

    Γη 1 (Γη = 1)Σημειώστε ότι αυτό το αρχείο μοιάζει πολύ αρχείο προέλευσης planets.xml , εκτός από το ότι κάθε στοιχείο Περιέχει μόνο στοιχεία

    Φυσικά, μπορεί να πραγματοποιηθεί οποιοσδήποτε από αυτούς τους τύπους μετασχηματισμών XML-XML. Μπορείτε να χειριστείτε τα δεδομένα σε ένα έγγραφο XML για να δημιουργήσετε εντελώς νέα έγγραφα XML. Για παράδειγμα, μπορείτε να πάρετε ένα έγγραφο XML που περιέχει ονόματα και βαθμούς μαθητών και να δημιουργήσετε ένα νέο έγγραφο που εμφανίζει τους μέσους όρους βαθμών. Το XSLT έχει πολλές ενσωματωμένες λειτουργίες που σας επιτρέπουν να εργάζεστε με δεδομένα με αυτόν τον τρόπο, τις οποίες θα εξετάσουμε στο Κεφάλαιο 8.

    Επιπλέον, πολλά προγράμματα χρησιμοποιούν XML για την ανταλλαγή δεδομένων στο Διαδίκτυο και δεδομένου ότι συνήθως μορφοποιούν τα έγγραφά τους XML διαφορετικά, δημοφιλής τρόποςΗ χρήση των μετασχηματισμών XML σε XML στο Διαδίκτυο είναι να μετατρέψει τη XML από μια μορφή που χρησιμοποιείται από ένα πρόγραμμα σε μια μορφή που χρησιμοποιείται από ένα άλλο πρόγραμμα.

    Από το βιβλίο της C++ από τον Hill Murray

    8.5.6 Μετατροπές Ένας κατασκευαστής που λαμβάνει μία παράμετρο ορίζει μια μετατροπή από τον τύπο της παραμέτρου του στον τύπο της κλάσης του. Τέτοιοι μετασχηματισμοί εφαρμόζονται σιωπηρά επιπλέον των τυπικών μετασχηματισμών (#6.6-7). Επομένως, εκχώρηση σε ένα αντικείμενο από την κλάση X

    Από το βιβλίο Οδηγός βοήθειαςσε C++ συγγραφέας Stroustrap Bjarne

    R.4.7 Μετασχηματισμοί αναφοράς Όπου αρχικοποιούνται οι αναφορές (§R.8.2.2) (συμπεριλαμβανομένων των παραμέτρων μεταφοράς (§R.5.2.2) και επιστροφής μιας τιμής συνάρτησης (§R.6.6.3)) ή χρησιμοποιούνται με άλλο τρόπο, τα ακόλουθα δυνατή: μετατροπή:Σύνδεσμος προς αυτή την τάξημπορεί να μετατραπεί σε σύνδεσμο προς

    Από το βιβλίο Συμβουλές για τους Δελφούς. Έκδοση 1.0.6 συγγραφέας Οζέροφ Βαλεντίν

    R.12.3 Μετατροπές Οι μετατροπές αντικειμένων κλάσης μπορούν να καθοριστούν χρησιμοποιώντας κατασκευαστές ή συναρτήσεις μετατροπής Τέτοιες μετατροπές, που συνήθως ονομάζονται προσαρμοσμένες μετατροπές, χρησιμοποιούνται σιωπηρά σε συνδυασμό με τυπικές μετατροπές (§R.4). Για παράδειγμα, η συνάρτηση

    συγγραφέας Raymond Eric Stephen

    R.12.3.2 Συναρτήσεις μετατροπής Μια συνάρτηση μέλους της κλάσης X της οποίας το όνομα είναι conversion-function-name: operator conversion-type-name conversion-type-name: type-specification-list opt ​​ptr-operation opt καθορίζει μια μετατροπή από τύπου X σε τύπο που ορίζεται από το σχέδιο

    Από το βιβλίο The Art of Programming for Unix συγγραφέας Raymond Eric Stephen

    Από το βιβλίο HTML 5, CSS 3 και Web 2.0. Ανάπτυξη σύγχρονων ιστοσελίδων. συγγραφέας Dronov Vladimir

    Από το βιβλίο XSLT συγγραφέας Holzner Stephen

    18.5.4. Εργαλεία μετατροπής Το δεύτερο μεγαλύτερο πρόβλημα με το DocBook είναι η ανάγκη μετατροπής της παλιάς σήμανσης σε επίπεδο παρουσίασης σε σήμανση DocBook. Ένας άνθρωπος μπορεί συνήθως να μετατρέψει αυτόματα την αναπαράσταση ενός εγγράφου σε λογική δομή,

    Από το βιβλίο XSLT Technology συγγραφέας Valikov Alexey Nikolaevich

    Μετασχηματισμοί CSS Στο Κεφάλαιο 22, όταν μιλήσαμε για τον καμβά και σχεδιάσαμε προγραμματικά πάνω του, μάθαμε για τους μετασχηματισμούς του συστήματος συντεταγμένων. Με τη βοήθεια ειδικών Επεκτάσεις CSSμπορούμε να εκτελέσουμε παρόμοιες ενέργειες σε οποιοδήποτε στοιχείο της ιστοσελίδας: να το μετακινήσουμε, να το περιστρέψουμε, να το τεντώσουμε ή

    Από το βιβλίο The C Programming Language for προσωπικός υπολογιστής συγγραφέας Bochkov S. O.

    Μετασχηματισμοί XML-to-XML Οι μετασχηματισμοί XML-σε-XML θεωρούνται μερικές φορές SQL για τον ιστό επειδή σας επιτρέπουν να χειρίζεστε ερωτήματα βάσης δεδομένων σε έγγραφα XML. Παρακάτω είναι ένα παράδειγμα. Το αρχείο planets.xml που χρησιμοποιούμε περιέχει αρκετά δεδομένα για το καθένα

    Από το βιβλίο Macromedia FlashΕπαγγελματικά 8. Γραφικά και κινούμενα σχέδια συγγραφέας Dronov V. A.

    Μοντέλο μετασχηματισμού Στο εισαγωγικό κεφάλαιο, είπαμε ότι οι μετασχηματισμοί στο XSLT είναι σύνολα κανόνων προτύπων, καθένας από τους οποίους επεξεργάζεται ένα συγκεκριμένο τμήμα του εγγράφου εισόδου για να δημιουργήσει ένα τμήμα της εξόδου

    Από το βιβλίο του συγγραφέα

    Πλαίσιο μετασχηματισμού Όταν εκτελείται ένας μετασχηματισμός, κάθε εντολή του, κάθε στοιχείο του, υποβάλλεται σε επεξεργασία σε κάποιο πλαίσιο. Το πλαίσιο μετασχηματισμού αποτελείται από δύο μέρη: το τρέχον σύνολο κόμβων και τον τρέχοντα κόμβο, που υποδεικνύουν τι ακριβώς

    Από το βιβλίο του συγγραφέα

    Εκτέλεση μετασχηματισμού Παρά την πλήρη ελευθερία στη σειρά εκτέλεσης των προτύπων, τους κανόνες για την αλλαγή του περιβάλλοντος και της διάταξης του δέντρου αποτελεσμάτων, η προδιαγραφή XSLT είναι πολύ σαφής - αυτό καθιστά την XSLT μια πολύ ευέλικτη γλώσσα, τα προγράμματα στην οποία ταυτόχρονα

    Από το βιβλίο του συγγραφέα

    Απλοί μετασχηματισμοί Πολλοί απλοί μετασχηματισμοί αποτελούνται από έναν κανόνα που επεξεργάζεται τον ριζικό κόμβο του εισερχόμενου εγγράφου. Γενική άποψηΑυτό το είδος μετασχηματισμού φαίνεται στην ακόλουθη λίστα. Λίστα 4.2. Απλός

    Από το βιβλίο του συγγραφέα

    Προεπιλεγμένες μετατροπές Οι περισσότερες λειτουργίες C εκτελούν μετατροπές τύπων για να μεταφέρουν τους τελεστές τους σε έναν κοινό τύπο ή για να επεκτείνουν τις τιμές των σύντομων τύπων στο μέγεθος που χρησιμοποιείται στις λειτουργίες μηχανής. Μεταμορφώσεις,

    Από το βιβλίο του συγγραφέα

    Μετατροπές τύπων Οι μετατροπές τύπου εκτελούνται είτε σιωπηρά, όπως από προεπιλεγμένη μετατροπή ή κατά την εκχώρηση, είτε ρητά, εκτελώντας μια μετάδοση τύπου. Η μετατροπή τύπου εκτελείται επίσης όταν μετατρέπεται μια τιμή

    Από το βιβλίο του συγγραφέα

    Μετασχηματισμοί Υπάρχουν μόνο δύο μετασχηματισμοί που παρέχονται από το Flash. Ωστόσο, με τη βοήθειά τους μπορείτε να ορίσετε μια πολύ περίπλοκη κίνηση του τμήματος που επιλέξαμε



    Συνιστούμε να διαβάσετε

    Κορυφή