Εκμάθηση PHP XML: Δημιουργία, Ανάλυση, Ανάγνωση με Παράδειγμα
⚡ Έξυπνη Σύνοψη
Η PHP και η XML συνεργάζονται για τη δομή, την αποθήκευση και την ανταλλαγή δεδομένων μεταξύ συστημάτων. Αυτή η αναλυτική παρουσίαση εξηγεί την XML, το DOM και τους αναλυτές XML, και στη συνέχεια δείχνει πώς να διαβάσετε ένα έγγραφο XML με το SimpleXML και πώς να δημιουργήσετε ένα με την κλάση DOMDocument, καταλήγοντας με το πότε να χρησιμοποιήσετε το καθένα.

Τι είναι το 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 και του τρόπου λειτουργίας του σάς δίνει ένα ανταγωνιστικό πλεονέκτημα ως προγραμματιστή, καθώς οι σύγχρονες εφαρμογές κάνουν εκτεταμένη χρήση των υπηρεσιών ιστού.
- Τα έγγραφα XML μπορούν να χρησιμοποιηθούν για την αποθήκευση των ρυθμίσεων διαμόρφωσης μιας εφαρμογής.
- Σας επιτρέπει να δημιουργήσετε τις δικές σας προσαρμοσμένες ετικέτες, γεγονός που το καθιστά πιο ευέλικτο.
Παράδειγμα εγγράφου XML
Ας υποθέσουμε ότι έχετε αναπτυχθείping μια εφαρμογή που λαμβάνει δεδομένα από μια διαδικτυακή υπηρεσία σε μορφή 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 για να φορτώσει το αρχείο με όνομα employees.xml και να αντιστοιχίσει τα περιεχόμενα στη μεταβλητή $xml.
- Η εντολή “$list = $xml->record;” λαμβάνει τα περιεχόμενα των κόμβων εγγραφής.
- Το “for ($i = 0; $i < count(…)…” είναι ο βρόχος for που διαβάζει τον πίνακα και εξάγει τα αποτελέσματα
- "$list[$i]->attributes()->man_no;" διαβάζει το χαρακτηριστικό man_no του στοιχείου
- "$list[$i]->name;" διαβάζει την τιμή του στοιχείου θυγατρικού ονόματος
- "$list[$i]->position;" διαβάζει την τιμή του στοιχείου θυγατρικού θέσης
Δοκιμή του XML Reader
Υποθέτοντας ότι αποθηκεύσατε το αρχείο index.php στον φάκελο phptuts/xml, μεταβείτε στο URL http://localhost/phptuts/xml/index.php
Πώς να δημιουργήσετε ένα έγγραφο XML χρησιμοποιώντας PHP
Θα δούμε τώρα πώς να δημιουργήσουμε ένα έγγραφο XML χρησιμοποιώντας PHP.
Ο ακόλουθος κώδικας χρησιμοποιεί την ενσωματωμένη κλάση DOMDocument της PHP για τη δημιουργία ενός εγγράφου 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', 'Comedy'); $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 = new DOMDocument();” δημιουργεί μια παρουσία της κλάσης DOMDocument.
- "$dom->encoding = 'utf-8';" ορίζει την κωδικοποίηση εγγράφου σε utf-8
- "$dom->xmlVersion = '1.0';" καθορίζει τον αριθμό έκδοσης 1.0
- "$dom->formatOutput = true;" διασφαλίζει ότι η έξοδος είναι καλά διαμορφωμένη
- "$root = $dom->createElement('Ταινίες');" δημιουργεί τον ριζικό κόμβο με το όνομα Ταινίες
- Το “$attr_movie_id = new DOMAttr('movie_id', '5467');” ορίζει το χαρακτηριστικό movie_id του κόμβου ταινίας
- Η εντολή “$dom->createElement('ElementName', 'ElementValue')” δημιουργεί έναν θυγατρικό κόμβο. Η εντολή ElementName καθορίζει το όνομα του στοιχείου, π.χ. Τίτλος. Η εντολή ElementValue ορίζει την τιμή του θυγατρικού κόμβου, π.χ. Η Εκστρατεία.
- Η εντολή “$root->appendChild($movie_node);” προσθέτει τον κόμβο ταινίας στον κόμβο ρίζας Ταινίες
- "$dom->appendChild($root);" προσθέτει τον ριζικό κόμβο στο έγγραφο XML.
- "$dom->save($xml_file_name);" αποθηκεύει το αρχείο XML στον ριζικό κατάλογο του διακομιστή web.
- Το μήνυμα "echo “$xml_file_name έχει δημιουργηθεί με επιτυχία”;” εμφανίζει ένα μήνυμα επιτυχίας.
Δοκιμή της XML Creator
Υποθέτοντας ότι αποθηκεύσατε το αρχείο create_movies_list.php στον φάκελο phptuts/xml, μεταβείτε στο URL http://localhost/phptuts/xml/create_movies_list.php
Ανοίξτε το αρχείο movies_list.xml.
SimpleXML vs DOMDocument
Η PHP προσφέρει δύο βασικούς τρόπους εργασίας με XML. Η SimpleXML είναι η καλύτερη όταν χρειάζεται κυρίως να διαβάσετε δεδομένα, ενώ η DOMDocument παρέχει καλύτερο έλεγχο για τη δημιουργία και την επεξεργασία εγγράφων σε μεγάλο βαθμό. Ο παρακάτω πίνακας τους συγκρίνει.
| Άποψη | simplexml | DOMDocument |
|---|---|---|
| Ευκολία στη χρήση | Πολύ απλό· το έγγραφο συμπεριφέρεται σαν ένθετα αντικείμενα | Πιο λεπτομερές, API βασισμένο σε κόμβους |
| καλυτερα for | Ανάγνωση και ελαφριά επεξεργασία | Δημιουργία εγγράφων και πολύπλοκος χειρισμός |
| Στυλ πρόσβασης | $xml->εγγραφή->όνομα | createElement() και appendChild() |
| Υποστήριξη XPath | Ναι, μέσω ->xpath() | Ναι, μέσω της κλάσης DOMXPath |
Ένας πρακτικός κανόνας είναι να χρησιμοποιείτε πρώτα το SimpleXML για την ανάγνωση ροών και απλών αρχείων και να αλλάζετε στο DOMDocument όταν χρειάζεται να δημιουργείτε έγγραφα, να εισάγετε κόμβους σε συγκεκριμένες θέσεις ή να επικυρώνετε ένα σχήμα.



