Εκμάθηση PHP XML: Δημιουργία, Ανάλυση, Ανάγνωση με Παράδειγμα
Τι είναι το XML;
Η XML είναι το ακρωνύμιο για την Επεκτατική Γλώσσα σήμανσης.
Η XML χρησιμοποιείται για τη δομή, αποθήκευση και μεταφορά δεδομένων από το ένα σύστημα στο άλλο.
Η XML είναι παρόμοια με την HTML.
Χρησιμοποιεί ετικέτες ανοίγματος και κλεισίματος.
Σε αντίθεση με την HTML, η XML επιτρέπει στους χρήστες να ορίζουν τις δικές τους ετικέτες.
Τι είναι το DOM;
Το DOM είναι το ακρωνύμιο για το μοντέλο αντικειμένου εγγράφου.
Είναι ένα ουδέτερο πρότυπο πολλαπλών πλατφορμών και γλώσσας που καθορίζει τον τρόπο πρόσβασης και χειρισμού δεδομένων.
- HTML
- XHTML
- XML
Το DOM XML χρησιμοποιείται για πρόσβαση και χειρισμό εγγράφων XML. Το προβάλλει το έγγραφο XML ως δέντρο-δομή.
XML Parsers
Ένας αναλυτής XML είναι ένα πρόγραμμα που μεταφράζει το έγγραφο XML σε αντικείμενο μοντέλου αντικειμένου εγγράφου XML (DOM).
Το αντικείμενο XML DOM μπορεί στη συνέχεια να χειριστεί χρησιμοποιώντας JavaΓραφή, Python, και PHP κ.λπ.
Η λέξη-κλειδί CDATA που είναι το ακρωνύμιο για τα δεδομένα χαρακτήρων (Μη αναλυμένα) χρησιμοποιείται για να αγνοήσει ειδικούς χαρακτήρες όπως "<,>" κατά την ανάλυση ενός εγγράφου XML.
Γιατί να χρησιμοποιήσετε XML;
- Οι υπηρεσίες Ιστού όπως το SOAP και το REST χρησιμοποιούν μορφή XML για την ανταλλαγή πληροφοριών. Μαθαίνοντας τι είναι η XML και πώς λειτουργεί θα αποκτήσετε ανταγωνιστικό πλεονέκτημα ως προγραμματιστής, καθώς οι σύγχρονες εφαρμογές κάνουν μεγάλη χρήση των υπηρεσιών web.
- Τα έγγραφα XML μπορούν να χρησιμοποιηθούν για την αποθήκευση των ρυθμίσεων διαμόρφωσης μιας εφαρμογής
- Σας επιτρέπει να δημιουργήσετε τις δικές σας προσαρμοσμένες ετικέτες που το καθιστούν πιο ευέλικτο.
Παράδειγμα εγγράφου XML
Ας υποθέσουμε ότι αναπτύσσετε μια εφαρμογή που λαμβάνει δεδομένα από μια υπηρεσία web σε μορφή XML.
Παρακάτω είναι το δείγμα της εμφάνισης του εγγράφου XML.
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
ΕΔΩ,
- " ” καθορίζει την έκδοση xml που θα χρησιμοποιηθεί και θα κωδικοποιηθεί
- " ” είναι το ριζικό στοιχείο.
- " … ” είναι τα θυγατρικά στοιχεία της διοίκησης και των πωλήσεων αντίστοιχα.
Πώς να διαβάσετε XML χρησιμοποιώντας PHP
Ας γράψουμε τώρα τον κώδικα που θα διαβάζει το έγγραφο XML των υπαλλήλων και θα εμφανίζει τα αποτελέσματα σε ένα πρόγραμμα περιήγησης ιστού. index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
ΕΔΩ,
- "$xml = simplexml_load_file('employees.xml');" χρησιμοποιεί τη συνάρτηση simplexml_load_file για να φορτώσει το όνομα αρχείου staffs.xml και να εκχωρήσει τα περιεχόμενα στη μεταβλητή του πίνακα $xml.
- "$list = $xml->record;" λαμβάνει τα περιεχόμενα του κόμβου εγγραφής.
- "for ($i = 0; $i < count(...)..." είναι ο βρόχος for που διαβάζει τον αριθμητικό πίνακα και βγάζει τα αποτελέσματα
- "$list[$i]->attributes()->man_no;" διαβάζει το χαρακτηριστικό man_no του στοιχείου
- "$list[$i]->name;" διαβάζει την τιμή του στοιχείου θυγατρικού ονόματος
- "$list[$i]->position;" διαβάζει την τιμή του στοιχείου θυγατρικού θέσης
Δοκιμή της εφαρμογής μας
Αν υποθέσουμε ότι αποθηκεύσατε το αρχείο index.php στον φάκελο phptus/xml, μεταβείτε στη διεύθυνση URL http://localhost/phptuts/xml/index.php
Πώς να δημιουργήσετε ένα έγγραφο XML χρησιμοποιώντας PHP
Θα δούμε τώρα πώς να δημιουργήσουμε ένα έγγραφο XML χρησιμοποιώντας PHP.
Θα χρησιμοποιήσουμε το παραπάνω παράδειγμα στο δενδρικό διάγραμμα DOM.
Ο παρακάτω κώδικας χρησιμοποιεί την ενσωματωμένη PHP στην κλάση DODocument για να δημιουργήσει ένα έγγραφο XML.
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'The Campaign'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
ΕΔΩ,
- "$dom = νέο DOMDocument();" δημιουργεί μια παρουσία της κλάσης DODocument.
- "$dom->encoding = 'utf-8';" ορίζει την κωδικοποίηση εγγράφου σε utf-8
- "$dom->xmlVersion = '1.0';" καθορίζει τον αριθμό έκδοσης 1.0
- "$dom->formatOutput = true;" διασφαλίζει ότι η έξοδος είναι καλά διαμορφωμένη
- "$root = $dom->createElement('Ταινίες');" δημιουργεί τον ριζικό κόμβο με το όνομα Ταινίες
- "$attr_movie_id = νέο DOMattr('movie_id', '5467');" ορίζει το χαρακτηριστικό αναγνωριστικό ταινίας του κόμβου Ταινίες
- Το "$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')" δημιουργεί τον θυγατρικό κόμβο του κόμβου Movies. ElementName καθορίζει το όνομα του στοιχείου π.χ. Τίτλος. Το ElementValue ορίζει την τιμή του θυγατρικού κόμβου, π.χ. The Campaign.
- "$root->appendChild($movie_node);" προσθέτει τα στοιχεία movie_node στον ριζικό κόμβο Ταινίες
- "$dom->appendChild($root);" προσθέτει τον ριζικό κόμβο στο έγγραφο XML.
- "$dom->save($xml_file_name);" αποθηκεύει το αρχείο XML στον ριζικό κατάλογο του διακομιστή web.
- "ηχώ ' ' . $xml_file_name . " Έχει δημιουργηθεί με επιτυχία";" δημιουργεί τη σύνδεση με το αρχείο XML.
Δοκιμή της εφαρμογής μας
Αν υποθέσουμε ότι αποθηκεύσατε το αρχείο create_movies_list στον φάκελο phptuts/xml, μεταβείτε στη διεύθυνση URL http://localhost/phptuts/xml/create_movies_list.php
Κάντε κλικ στο σύνδεσμο movies_list_xml
Σύνοψη
- XML είναι το αρκτικόλεξο για την επεκτάσιμη γλώσσα σήμανσης
- Η XML μπορεί να χρησιμοποιηθεί για ανταλλαγή πληροφοριών μεταξύ συστημάτων ή αποθήκευση ρυθμίσεων παραμέτρων μιας εφαρμογής κ.λπ.
- Το DOM είναι το ακρωνύμιο για το μοντέλο αντικειμένου εγγράφου. Το XML DOM προβάλλει το έγγραφο XML ως δομή δέντρου
- Ένας XML Parser είναι ένα πρόγραμμα που μεταφράζει το XML ένα έγγραφο XML σε ένα έγγραφο που μοιάζει με δέντρο DOM.
- Το CDATA χρησιμοποιείται για την παράβλεψη ειδικών χαρακτήρων κατά την ανάλυση εγγράφων XML.
- PHP χρησιμοποιεί το simplexml_load_file για να διαβάζει έγγραφα XML και να επιστρέφει τα αποτελέσματα ως αριθμητικό πίνακα
- PHP DODOcument class για τη δημιουργία αρχείων XML.