SimpleXML στο PHP

Ο SimpleXML χειρίζεται τις πιο συχνές εργασίες XML, ενώ άλλες εργασίες παραπέμπουν σε άλλες επεκτάσεις.

Τι είναι το SimpleXML;

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

Σε σύγκριση με τους αναλυτές DOM ή Expat, ο SimpleXML μπορεί να διαβάσει δεδομένα κειμένου από στοιχεία με λίγες γραμμές κώδικα.

Ο SimpleXML μπορεί να μετατρέψει ένα έγγραφο XML σε αντικείμενο, όπως:

  • Στοιχεία - Μετατρέπονται σε αντικείμενα SimpleXMLElement. Όταν υπάρχουν πολλαπλά στοιχεία στο ίδιο επίπεδο, θα τα τοποθετήσουμε σε μια λίστα.
  • Ιδιότητες - Αναγάγονται μέσω关联数组 (associative arrays) όπου οι κλειδιά αντιστοιχούν στα ονόματα των ιδιοτήτων.
  • Δεδομένα στοιχείων - Το κείμενο του στοιχείου μετατρέπεται σε αλφαβητική αλυσίδα. Αν ένα στοιχείο έχει πολλαπλούς κόμβους κειμένου, θα τα οργανώσουμε κατά τη σειρά που βρέθηκαν.

Ο SimpleXML είναι πολύ γρήγορος στη χρήση του όταν εκτελεί βασικές εργασίες όπως οι παρακάτω:

  • Ανάγνωση αρχείου XML
  • Εξαγωγή δεδομένων από αλφαβητική αλυσίδα XML
  • Επεξεργασία κειμένων κόμβων ή ιδιοτήτων

Ωστόσο, όταν χειρίζεστε προηγμένες λειτουργίες XML, όπως ονόματα χώρου, είναι καλύτερο να χρησιμοποιήσετε τον αναλυτή Expat ή τον XML DOM.

Εγκατάσταση

Από την έκδοση PHP 5.0 και μετά, η συνάρτηση SimpleXML είναι μέρος του κεντρικού φυλλαδίου του PHP. Μπορείτε να χρησιμοποιήσετε αυτές τις συναρτήσεις χωρίς να χρειάζεται να εγκαταστήσετε κάτι.

Χρήση SimpleXML

Ακολουθεί ένα αρχείο XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

We plan to output the element names and data from the above XML file.

This is what needs to be done:

  1. Load XML file
  2. Get the name of the first element
  3. Use the children() function to create a loop triggered at each child node
  4. Output the element name and data of each child node

Example

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

The output of the above code:

note
to: George
from: John
heading: Reminder
body: Don't forget the meeting!

More information about PHP SimpleXML

For more information about PHP SimpleXML, please visit our PHP SimpleXML Reference Manual.