Οδηγός Python XML Parser: Διαβάστε το παράδειγμα αρχείου xml (Minidom, ElementTree)

Πίνακας περιεχομένων:

Anonim

Τι είναι το XML;

Το XML σημαίνει eXtensible Markup Language. Σχεδιάστηκε για την αποθήκευση και μεταφορά μικρών έως μεσαίων ποσοτήτων δεδομένων και χρησιμοποιείται ευρέως για την ανταλλαγή δομημένων πληροφοριών.

Το Python σας επιτρέπει να αναλύσετε και να τροποποιήσετε το έγγραφο XML. Για να αναλύσετε το έγγραφο XML πρέπει να έχετε στη μνήμη ολόκληρο το έγγραφο XML. Σε αυτό το σεμινάριο, θα δούμε πώς μπορούμε να χρησιμοποιήσουμε το XML minidom class στο Python για να φορτώσουμε και να αναλύσουμε το αρχείο XML.

Σε αυτό το σεμινάριο, θα μάθουμε-

  • Πώς να αναλύσετε το XML χρησιμοποιώντας το minidom
  • Τρόπος δημιουργίας κόμβου XML
  • Πώς να αναλύσετε το XML χρησιμοποιώντας το ElementTree

Πώς να αναλύσετε το XML χρησιμοποιώντας το minidom

Δημιουργήσαμε ένα δείγμα αρχείου XML που πρόκειται να αναλύσουμε.

Βήμα 1) Μέσα στο αρχείο, μπορούμε να δούμε το όνομα, το επώνυμο, το σπίτι και τον τομέα εξειδίκευσης (SQL, Python, Testing and Business)

Βήμα 2) Μόλις αναλύσουμε το έγγραφο, θα εκτυπώσουμε το "όνομα κόμβου" της ρίζας του εγγράφου και το " όνομα πρώτου παιδιού" . Το όνομα και το όνομα χρήστη είναι οι τυπικές ιδιότητες του αρχείου XML.

  • Εισαγάγετε τη μονάδα xml.dom.minidom και δηλώστε το αρχείο που πρέπει να αναλυθεί (myxml.xml)
  • Αυτό το αρχείο περιέχει μερικές βασικές πληροφορίες σχετικά με τον υπάλληλο, όπως όνομα, επώνυμο, σπίτι, εμπειρία κ.λπ.
  • Χρησιμοποιούμε τη συνάρτηση ανάλυσης στο XML minidom για να φορτώσουμε και να αναλύσουμε το αρχείο XML
  • Έχουμε μεταβλητή doc και doc παίρνει το αποτέλεσμα της συνάρτησης ανάλυσης
  • Θέλουμε να εκτυπώσουμε το όνομα χρήστη και το θυγατρικό όνομα από το αρχείο, οπότε το δηλώνουμε στη λειτουργία εκτύπωσης
  • Εκτελέστε τον κωδικό - Εκτυπώνει το όνομα χρήστη (#document) από το αρχείο XML και το πρώτο θυγατρικό όνομα (υπάλληλος) από το αρχείο XML

Σημείωση :

Το όνομα χρήστη και το θυγατρικό όνομα είναι τα τυπικά ονόματα ή ιδιότητες ενός XML dom. Σε περίπτωση που δεν είστε εξοικειωμένοι με αυτούς τους τύπους συμβάσεων ονομασίας.

Βήμα 3) Μπορούμε επίσης να καλέσουμε τη λίστα των ετικετών XML από το έγγραφο XML και να εκτυπωθεί. Εδώ εκτυπώσαμε το σύνολο των δεξιοτήτων όπως SQL, Python, Testing και Business.

  • Δηλώστε τη μεταβλητή τεχνογνωσία, από την οποία θα εξαγάγουμε όλο το όνομα εμπειρογνωμοσύνης που έχει ο υπάλληλος
  • Χρησιμοποιήστε την τυπική συνάρτηση dom που ονομάζεται "getElementsByTagName"
  • Αυτό θα πάρει όλα τα στοιχεία που ονομάζονται δεξιότητα
  • Δηλώστε βρόχο πάνω από κάθε μία από τις ετικέτες δεξιοτήτων
  • Εκτελέστε τον κωδικό - Θα δώσει λίστα τεσσάρων δεξιοτήτων

Τρόπος δημιουργίας κόμβου XML

Μπορούμε να δημιουργήσουμε ένα νέο χαρακτηριστικό χρησιμοποιώντας τη λειτουργία "createElement" και μετά να προσθέσουμε αυτό το νέο χαρακτηριστικό ή ετικέτα στις υπάρχουσες ετικέτες XML Προσθέσαμε μια νέα ετικέτα "BigData" στο αρχείο XML μας.

  1. Πρέπει να κωδικοποιήσετε για να προσθέσετε το νέο χαρακτηριστικό (BigData) στην υπάρχουσα ετικέτα XML
  2. Στη συνέχεια, πρέπει να εκτυπώσετε την ετικέτα XML με νέα χαρακτηριστικά προσαρτημένα με την υπάρχουσα ετικέτα XML
  • Για να προσθέσουμε ένα νέο XML και να το προσθέσουμε στο έγγραφο, χρησιμοποιούμε τον κωδικό "doc.create στοιχεία"
  • Αυτός ο κώδικας θα δημιουργήσει μια νέα ετικέτα δεξιοτήτων για το νέο μας χαρακτηριστικό "Big-data"
  • Προσθέστε αυτήν την ετικέτα δεξιοτήτων στο έγγραφο πρώτο παιδί (υπάλληλος)
  • Εκτελέστε τον κωδικό - η νέα ετικέτα "big data" θα εμφανιστεί με την άλλη λίστα εμπειρογνωμοσύνης

Παράδειγμα ανάλυσης XML

Παράδειγμα Python 2

εισαγωγή xml.dom.minidomdef main ():# χρησιμοποιήστε τη συνάρτηση parse () για να φορτώσετε και να αναλύσετε ένα αρχείο XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# εκτυπώστε τον κόμβο του εγγράφου και το όνομα της πρώτης θυγατρικής ετικέταςεκτύπωση doc.nodeNameεκτύπωση doc.firstChild.tagName# λάβετε μια λίστα με ετικέτες XML από το έγγραφο και εκτυπώστε κάθε μίαεμπειρογνωμοσύνη = doc.getElementsByTagName ("εμπειρία")εκτύπωση "% d εξειδίκευση:"% εξειδίκευση. μήκοςγια δεξιότητα στην εμπειρία:print skill.getAttribute ("όνομα")# δημιουργήστε μια νέα ετικέτα XML και προσθέστε την στο έγγραφοnewexpertise = doc.createElement ("εμπειρία")newexpertise.setAttribute ("όνομα", "BigData")doc.firstChild.appendChild (newexpertise)Τυπώνω " "εμπειρογνωμοσύνη = doc.getElementsByTagName ("εμπειρία")εκτύπωση "% d εξειδίκευση:"% εξειδίκευση. μήκοςγια δεξιότητα στην εμπειρία:print skill.getAttribute ("όνομα")αν όνομα == "__main__":κύριος();

Παράδειγμα Python 3

εισαγωγή xml.dom.minidomdef main ():# χρησιμοποιήστε τη συνάρτηση parse () για να φορτώσετε και να αναλύσετε ένα αρχείο XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# εκτυπώστε τον κόμβο του εγγράφου και το όνομα της πρώτης θυγατρικής ετικέταςεκτύπωση (doc.nodeName)εκτύπωση (doc.firstChild.tagName)# λάβετε μια λίστα με ετικέτες XML από το έγγραφο και εκτυπώστε κάθε μίαεμπειρογνωμοσύνη = doc.getElementsByTagName ("εμπειρία")εκτύπωση ("% d εξειδίκευση:"% εμπειρογνωμοσύνηγια δεξιότητα στην εμπειρία:εκτύπωση (skill.getAttribute ("name"))# δημιουργήστε μια νέα ετικέτα XML και προσθέστε την στο έγγραφοnewexpertise = doc.createElement ("εμπειρία")newexpertise.setAttribute ("όνομα", "BigData")doc.firstChild.appendChild (newexpertise)Τυπώνω (" ")εμπειρογνωμοσύνη = doc.getElementsByTagName ("εμπειρία")εκτύπωση ("% d εξειδίκευση:"% εμπειρογνωμοσύνηγια δεξιότητα στην εμπειρία:εκτύπωση (skill.getAttribute ("name"))αν __name__ == "__main__":κύριος();

Πώς να αναλύσετε το XML χρησιμοποιώντας το ElementTree

Το ElementTree είναι ένα API για χειρισμό XML. Το ElementTree είναι ο εύκολος τρόπος επεξεργασίας αρχείων XML.

Χρησιμοποιούμε το ακόλουθο έγγραφο XML ως δείγμα δεδομένων:

SQLPython

Ανάγνωση XML χρησιμοποιώντας το ElementTree:

Πρέπει πρώτα να εισαγάγουμε τη μονάδα xml.etree.ElementTree.

import xml.etree.ElementTree as ET

Τώρα ας πάρουμε το ριζικό στοιχείο:

root = tree.getroot()

Ακολουθεί ο πλήρης κωδικός για την ανάγνωση πάνω από τα δεδομένα xml

import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)
παραγωγή:
Expertise Data:SQLPython

Περίληψη:

Το Python σάς δίνει τη δυνατότητα να αναλύσετε ολόκληρο το έγγραφο XML ταυτόχρονα και όχι μόνο μία γραμμή κάθε φορά. Για να αναλύσετε το έγγραφο XML πρέπει να έχετε στη μνήμη ολόκληρο το έγγραφο.

  • Για ανάλυση του εγγράφου XML
    • Εισαγωγή xml.dom.minidom
    • Χρησιμοποιήστε τη συνάρτηση "parse" για να αναλύσετε το έγγραφο (doc = xml.dom.minidom.parse (όνομα αρχείου).
    • Καλέστε τη λίστα ετικετών XML από το έγγραφο XML χρησιμοποιώντας κώδικα (= doc.getElementsByTagName ("όνομα ετικετών xml")
  • Για να δημιουργήσετε και να προσθέσετε νέο χαρακτηριστικό σε έγγραφο XML
    • Χρησιμοποιήστε τη συνάρτηση "createElement"