Μετατροπή XML σε συσχετιστικό πίνακα σε PHP

Convert Xml Associative Array Php



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

Απαραίτητες λειτουργίες

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







file_get_contents ():



Αυτή η συνάρτηση επιστρέφει τα δεδομένα συμβολοσειράς μετατρέποντας οποιαδήποτε δεδομένα XML. Λαμβάνει οποιοδήποτε όνομα αρχείου XML ως όρισμα.



simplexml_load_string ():





Αυτή η συνάρτηση επιστρέφει το αντικείμενο XML μετατρέποντας τα δεδομένα συμβολοσειράς XML. Λαμβάνει δεδομένα συμβολοσειράς XML ως όρισμα.

simplexml_load_file ():



Αυτή η συνάρτηση επιστρέφει το αντικείμενο XML μετατρέποντας περιεχόμενο αρχείου XML. Παίρνει το όνομα αρχείου XML ως όρισμα.

SimpleXMLElement ():

Χρησιμοποιείται για τη δημιουργία ενός αντικειμένου XML από δεδομένα XML. Λαμβάνει την τιμή περιεχομένου XML ως όρισμα.

json_encode ():

Επιστρέφει το αντικείμενο JSON μετατρέποντας το αντικείμενο XML. Παίρνει τη μεταβλητή αντικειμένου XML ως όρισμα.

json_decode ():

Επιστρέφει τον συσχετιστικό πίνακα PHP μετατρέποντας δεδομένα JSON. Παίρνει τη μεταβλητή αντικειμένου JSON ως όρισμα.

Δημιουργία αρχείου XML

Θα χρειαστεί να δημιουργήσετε ένα αρχείο XML ή να ορίσετε δεδομένα XML στο σενάριο για να γνωρίζετε τον τρόπο μετατροπής των δεδομένων XML σε συσχετιστικό πίνακα PHP. Δημιουργήστε ένα αρχείο XML με το όνομα course.xml με το ακόλουθο περιεχόμενο και αποθηκεύστε το στη θέση όπου βρίσκεται το σενάριο PHP. Το αρχείο περιέχει θυγατρικά στοιχεία κάτω από ένα γονικό στοιχείο. Έτσι, θα δημιουργηθεί ένας συσχετιστικός πίνακας δύο διαστάσεων μετά τη μετατροπή του ακόλουθου αρχείου XML σε πίνακα PHP.

μαθήματα.xml

εκδοχή='1.0'?>
>>
>>Προγραμματισμός Ιστού>>
>>6 μήνες>>
>>
>>
>>Η χαρά του προγραμματισμού PHP>>
>>Άλαν Φορμπς>>
>>Νησί Plum>>
>>
>>
>>PHP& MySQL Novice to Ninja
Τομ Μπάτλερ & Κέβιν Γιανκ
SitePoint


Head First PHP & MySQL
Lynn Beighley & Michael Morrison
O’Reilly


Παράδειγμα-1: Μετατρέψτε περιεχόμενο αρχείου XML σε συσχετιστικό πίνακα χωρίς έλεγχο σφάλματος

Το παρακάτω σενάριο δείχνει τις χρήσεις των λειτουργιών file_get_contents () και simplexml_load_string () για τη δημιουργία αντικειμένου XML. Εδώ, το αρχείο course.xml χρησιμοποιείται για μετατροπή που δημιουργήθηκε πριν. Στη συνέχεια, οι λειτουργίες json_encode () και json_decode () χρησιμοποιούνται για να λάβουν τον συσχετιστικό πίνακα μετά τη μετατροπή του περιεχομένου του αρχείου XML. Εάν δεν υπάρχει σφάλμα στο περιεχόμενο XML, τότε κανένα σφάλμα δεν θα εμφανιστεί από το ακόλουθο σενάριο. Εδώ, | _+_ | Η ετικέτα χρησιμοποιείται για την εκτύπωση του πίνακα με μορφοποιημένο τρόπο.



// Ορίστε το υπάρχον αρχείο XML
$ xml = 'course.xml'?

// Διαβάστε ολόκληρο το περιεχόμενο του αρχείου XML ως συμβολοσειρά XML
$ xmlΔεδομένα = file_get_contents ($ xml)?

// Μετατροπή δεδομένων συμβολοσειράς XML σε αντικείμενο XML
$ xmlObject = simplexml_load_string ($ xmlΔεδομένα)?

// Μετατροπή αντικειμένου XML σε αντικείμενο JSON
$ jsonObject = json_encode ($ xmlObject)?

// Μετατροπή αντικειμένου JSON σε συσχετιστικό πίνακα
$ assArray = json_decode ($ jsonObject, αληθής)?

// Εκτύπωση της δομής του συσχετιστικού πίνακα
πέταξε έξω '
  
'?

?>

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου PHP. Εδώ, δημιουργείται ένας δισδιάστατος πίνακας με βάση το περιεχόμενο του αρχείου XML, kurse.xml.

Παράδειγμα-2: Μετατρέψτε το περιεχόμενο αρχείου XML σε συσχετιστικό πίνακα με σφάλμα ελέγχου

Είναι καλύτερα να ελέγχετε το σφάλμα κατά τη μετατροπή της XML σε συσχετιστικό πίνακα. Θα βοηθήσει τον κωδικοποιητή να διορθώσει τον κώδικα εάν ο έλεγχος σφάλματος εφαρμοστεί στο σενάριο. Το παρακάτω σενάριο δείχνει τους τρόπους μετατροπής περιεχομένου αρχείου XML σε συσχετιστικό πίνακα χρησιμοποιώντας τη συνάρτηση simplexml_load_file () με χειρισμό σφαλμάτων. Η συνάρτηση libxml_use_internal_errors () χρησιμοποιείται με την τιμή TRUE για να ενεργοποιηθεί ο χειρισμός σφαλμάτων. Εάν το περιεχόμενο αρχείου XML που χρησιμοποιείται στο σενάριο περιέχει οποιοδήποτε σφάλμα, τότε η λειτουργία simplexml_load_file () θα επιστρέψει ως ψευδής και το μήνυμα σφάλματος θα εκτυπωθεί χρησιμοποιώντας τη λειτουργία libxml_get_errors (). Εάν δεν υπάρχει σφάλμα στο αρχείο XML, τότε το περιεχόμενο του αρχείου θα μετατραπεί σωστά σε συσχετιστικό πίνακα δύο διαστάσεων.



// Ενεργοποίηση χειρισμού σφαλμάτων χρήστη
libxml_use_internal_errors (ΑΛΗΘΗΣ)?

// Δημιουργία αντικειμένου XML
$ objXml = simplexml_load_file ('course.xml')?

// Σφάλμα εκτύπωσης εάν το αντικείμενο XML επιστρέψει false
αν ($ objXml === ΨΕΥΔΗΣ) {
πέταξε έξω «Παρουσιάστηκαν σφάλματα κατά την ανάλυση του αρχείου XML. n'?
για κάθε( libxml_get_errors () όπως και $ σφάλμα) {
πέταξε έξω $ σφάλμα->μήνυμα?
}
έξοδος ?
}

// Μετατροπή αντικειμένου XML σε αντικείμενο JSON
$ objJson = json_encode ($ objXml)?
// Μετατροπή αντικειμένου JSON σε συσχετιστικό πίνακα
$ assarr = json_decode ($ objJson, ΑΛΗΘΗΣ)?

// Εκτύπωση της δομής του συσχετιστικού πίνακα
πέταξε έξω '
';  
print_r ($assArray);
echo '
'
?

?>

Παραγωγή:

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

Παράδειγμα-3: Μετατρέψτε περιεχόμενο XML σε συσχετιστικό πίνακα

Το παρακάτω σενάριο δείχνει τον τρόπο μετατροπής δεδομένων XML σε συσχετιστικό πίνακα χρησιμοποιώντας τη συνάρτηση SimpleXMLElement (). Στο σενάριο, το περιεχόμενο XML αποθηκεύεται σε μια μεταβλητή που ονομάζεται $ xml και χρησιμοποιείται ως όρισμα της συνάρτησης, SimpleXMLElement (). Στη συνέχεια, οι λειτουργίες json_encode () και json_decode () χρησιμοποιούνται για να λάβουν τον συσχετιστικό πίνακα μετά τη μετατροπή του περιεχομένου του αρχείου XML.



// Ορίστε τη μεταβλητή XML
$ xml = <<


[προστασία ηλεκτρονικού ταχυδρομείου]

12 / A, Dhanmondi
Ντάκα



[προστασία ηλεκτρονικού ταχυδρομείου]

156, Μοτίβο
Ντάκα



[προστασία ηλεκτρονικού ταχυδρομείου]

21 / B, Mogbazar
Ντάκα



XML
?

// Δημιουργία αντικειμένου XML
$ xmlObject = νέοςSimpleXMLElement($ xml)?
// Δημιουργία αντικειμένου JSON
$ jsonObject = json_encode ($ xmlObject)?
// Μετατροπή αντικειμένου JSON σε συσχετιστικό πίνακα
$ assArray = json_decode ($ jsonObject, αληθής)?

// Εκτύπωση της δομής του συσχετιστικού πίνακα
πέταξε έξω '
';  
print_r ($assarr);
echo '
'
?

?>

Παραγωγή:

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

Συμπέρασμα:

Υπήρχαν τρεις διαφορετικοί τρόποι μετατροπής περιεχομένου XML σε συσχετιστικό πίνακα που παρουσιάστηκε σε αυτό το σεμινάριο. Αυτό θα βοηθήσει τους αναγνώστες να μάθουν τον τρόπο εργασίας με δεδομένα XML και να αναλύσουν τα δεδομένα από το περιεχόμενο XML χρησιμοποιώντας εύκολα ένα σενάριο PHP.