Εκμάθηση PHP XML: Δημιουργία, Ανάλυση, Ανάγνωση με Παράδειγμα

⚡ Έξυπνη Σύνοψη

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

  • 📄 Τι είναι η XML: Η XML είναι μια επεκτάσιμη γλώσσα σήμανσης, μια μορφή που βασίζεται σε ετικέτες και σας επιτρέπει να ορίζετε προσαρμοσμένες ετικέτες για τη δομή και τη μεταφορά δεδομένων.
  • 🌳 Το DOM: Το Μοντέλο Αντικειμένου Εγγράφου (Document Object Model) βλέπει ένα έγγραφο XML ή HTML ως δέντρο, επομένως ο κώδικας μπορεί να πλοηγηθεί και να επεξεργαστεί κόμβους.
  • 🔄 Αναλυτές XML: Ένας αναλυτής (parser) μετατρέπει ένα έγγραφο XML σε ένα αντικείμενο DOM που χρησιμοποιεί η PHP, JavaΣενάριο, ή Python μπορεί να διαβάσει και να αλλάξει.
  • 📖 Ανάγνωση XML: Η συνάρτηση simplexml_load_file φορτώνει ένα αρχείο σε αντικείμενα, επομένως έχετε πρόσβαση σε εγγραφές με σύνταξη βέλους όπως $xml->record->name.
  • Δημιουργία XML: Η κλάση DOMDocument δημιουργεί έναν κόμβο εγγράφου με κόμβο χρησιμοποιώντας τις συναρτήσεις createElement και appendChild και, στη συνέχεια, η αποθήκευση γράφει το αρχείο.
  • SimpleXML εναντίον DOM: Το SimpleXML είναι γρήγορο στην ανάγνωση, ενώ το DOMDocument ταιριάζει στην ακριβή δημιουργία και τον πολύπλοκο χειρισμό.
  • 🤖 AI Assist: Τα εργαλεία τεχνητής νοημοσύνης μπορούν να δημιουργήσουν κώδικα ανάλυσης για μια συγκεκριμένη δομή XML και να μετατρέψουν μεταξύ πινάκων XML, JSON και PHP.

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 και του τρόπου λειτουργίας του σάς δίνει ένα ανταγωνιστικό πλεονέκτημα ως προγραμματιστή, καθώς οι σύγχρονες εφαρμογές κάνουν εκτεταμένη χρήση των υπηρεσιών ιστού.
  • Τα έγγραφα 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

Θα δούμε τώρα πώς να δημιουργήσουμε ένα έγγραφο 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

Δημιουργήστε ένα έγγραφο XML χρησιμοποιώντας PHP

Ανοίξτε το αρχείο movies_list.xml.

Δημιουργήστε ένα έγγραφο XML χρησιμοποιώντας PHP

SimpleXML vs DOMDocument

Η PHP προσφέρει δύο βασικούς τρόπους εργασίας με XML. Η SimpleXML είναι η καλύτερη όταν χρειάζεται κυρίως να διαβάσετε δεδομένα, ενώ η DOMDocument παρέχει καλύτερο έλεγχο για τη δημιουργία και την επεξεργασία εγγράφων σε μεγάλο βαθμό. Ο παρακάτω πίνακας τους συγκρίνει.

Άποψη simplexml DOMDocument
Ευκολία στη χρήση Πολύ απλό· το έγγραφο συμπεριφέρεται σαν ένθετα αντικείμενα Πιο λεπτομερές, API βασισμένο σε κόμβους
καλυτερα for Ανάγνωση και ελαφριά επεξεργασία Δημιουργία εγγράφων και πολύπλοκος χειρισμός
Στυλ πρόσβασης $xml->εγγραφή->όνομα createElement() και appendChild()
Υποστήριξη XPath Ναι, μέσω ->xpath() Ναι, μέσω της κλάσης DOMXPath

Ένας πρακτικός κανόνας είναι να χρησιμοποιείτε πρώτα το SimpleXML για την ανάγνωση ροών και απλών αρχείων και να αλλάζετε στο DOMDocument όταν χρειάζεται να δημιουργείτε έγγραφα, να εισάγετε κόμβους σε συγκεκριμένες θέσεις ή να επικυρώνετε ένα σχήμα.

Συχνές Ερωτήσεις

Και οι δύο μορφές αποθηκεύουν δομημένα δεδομένα, αλλά η XML χρησιμοποιεί ετικέτες και υποστηρίζει χαρακτηριστικά, σχόλια και σχήματα, ενώ η JSON είναι πιο ελαφριά και αντιστοιχίζεται απευθείας σε πίνακες και αντικείμενα. Η JSON είναι κοινή για τα API. Η XML ταιριάζει σε έγγραφα και ρυθμίσεις.

Φορτώστε το αρχείο με SimpleXML ή DOMDocument, αλλάξτε τις τιμές ή τα χαρακτηριστικά του κόμβου και, στη συνέχεια, γράψτε το ξανά. Με το SimpleXML, επεξεργαστείτε την ιδιότητα και καλέστε την asXML('file.xml'). με το DOMDocument, επεξεργαστείτε τον κόμβο και καλέστε την save().

Το XPath είναι μια γλώσσα ερωτημάτων για την επιλογή κόμβων σε ένα έγγραφο XML. Στην PHP, καλέστε το $xml->xpath('//record/name') με SimpleXML ή χρησιμοποιήστε την κλάση DOMXPath για να ανακτήσετε στοιχεία που ταιριάζουν χωρίς loo.ping μέσα από ολόκληρο το δέντρο.

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

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

Συνοψίστε αυτήν την ανάρτηση με: