1. XML Εισαγωγή
Η XML (eXtensible Markup Language) αναφέρεται σε μια επεκτάσιμη γλώσσα σήμανσης, σχεδιασμένη για τη μετάδοση και αποθήκευση δεδομένων και έχει γίνει ο πυρήνας πολλών νέων τεχνολογιών σήμερα, με διαφορετικές εφαρμογές σε διαφορετικούς τομείς. Είναι ένα αναπόφευκτο προϊόν της ανάπτυξης του ιστού σε ένα ορισμένο στάδιο, το οποίο έχει τα βασικά χαρακτηριστικά της SGML, τα απλά χαρακτηριστικά της HTML και πολλά νέα χαρακτηριστικά όπως σαφή και καλά δομημένα.
δοκιμή. Αρχείο XML
<?xml version="1.0" encoding="utf-8"?> <catalog> <maxid>4</maxid> <login username="pytest" passwd='123456'> <caption>Πύθων</caption> <αναγνωριστικό στοιχείου="4"> <caption>δοκιμή</caption> </item> </login> <αναγνωριστικό στοιχείου="2"> <caption>Ζόπε</caption> </item> </catalog> Για μια λεπτομερή εισαγωγή στην XML, ανατρέξτε στο:http://www.w3school.com.cn/xmldom/dom_nodetype.asp
2. XML ανάλυση εγγράφων
Υπάρχουν τρεις κοινές μέθοδοι για την python για την ανάλυση XML: η μία είναι η λειτουργική μονάδα xml.dom.*, η οποία είναι μια υλοποίηση του W3C DOM API, η οποία είναι πολύ κατάλληλη εάν χρειάζεται να επεξεργαστείτε το DOM API. Η δεύτερη είναι η μονάδα xml.sax.*, η οποία είναι μια υλοποίηση του SAX API, η οποία θυσιάζει την ευκολία για την ταχύτητα και το αποτύπωμα μνήμης, και το SAX είναι ένα API που βασίζεται σε συμβάντα, που σημαίνει ότι μπορεί να επεξεργαστεί έναν τεράστιο αριθμό εγγράφων "στον αέρα" χωρίς να χρειάζεται να το φορτώσει πλήρως στη μνήμη. Η τρίτη είναι η μονάδα xml.etree.ElementTree (ET για συντομία), η οποία παρέχει ένα ελαφρύ API τύπου Python, το οποίο είναι πολύ πιο γρήγορο από το DOM, και υπάρχουν πολλά ευχάριστα API που μπορούν να χρησιμοποιηθούν, σε σύγκριση με το SAX, το ET.iterparse του ET παρέχει επίσης μια μέθοδο επεξεργασίας "στον αέρα", δεν χρειάζεται να φορτώσετε ολόκληρο το έγγραφο στη μνήμη και η μέση απόδοση του ET είναι παρόμοια με το SAX. Ωστόσο, το API είναι λίγο πιο αποτελεσματικό και εύκολο στη χρήση.
2.1 xml.dom.*
Το Document Object Model (DOM) είναι μια τυπική διεπαφή προγραμματισμού που συνιστάται από τον οργανισμό W3C για το χειρισμό επεκτάσιμων γλωσσών σήμανσης. Όταν ένας αναλυτής DOM αναλύει ένα έγγραφο XML, διαβάζει ολόκληρο το έγγραφο ταυτόχρονα, αποθηκεύει όλα τα στοιχεία του εγγράφου σε μια δομή δέντρου στη μνήμη και, στη συνέχεια, μπορείτε να χρησιμοποιήσετε διαφορετικές συναρτήσεις που παρέχονται από το DOM για να διαβάσετε ή να τροποποιήσετε το περιεχόμενο και τη δομή του εγγράφου ή να γράψετε το τροποποιημένο περιεχόμενο στο αρχείο xml. Χρησιμοποιήστε το xml.dom.minidom στην Python για να αναλύσετε το αρχείο xml.
α. Λάβετε δευτερεύουσες ετικέτες β. Ετικέτες που διακρίνουν το ίδιο όνομα ετικέτας γ. Λάβετε την τιμή του χαρακτηριστικού ετικέτας δ. Λάβετε δεδομένα μεταξύ ζευγών ετικετών
Απόδοση:
2.2 xml.etree.ElementTree
Το ElementTree γεννήθηκε για να χειρίζεται XML και υπάρχουν δύο υλοποιήσεις στην τυπική βιβλιοθήκη Python: η μία είναι μια καθαρή υλοποίηση Python, όπως το xml.etree.ElementTree, και η άλλη είναι μια ταχύτερη xml.etree.cElementTree. Σημείωση: Προσπαθήστε να χρησιμοποιήσετε τη γλώσσα C για να το εφαρμόσετε, καθώς είναι πιο γρήγορη και καταναλώνει λιγότερη μνήμη.
α. Διασχίστε το επόμενο επίπεδο του ριζικού κόμβου β. Πρόσβαση δεικτών σε μεμονωμένες ετικέτες, χαρακτηριστικά και κείμενο γ. Βρείτε την καθορισμένη ετικέτα κάτω από τη ρίζα δ. Διέλευση αρχείων XML ε. Τροποποιήστε το αρχείο XML
Απόδοση:
Επισυνάπτεται:
2.3 xml.sax.*
Το SAX είναι ένα API που βασίζεται σε συμβάντα που χρησιμοποιεί το SAX για την ανάλυση XML σε δύο μέρη: τον αναλυτή και τον χειριστή συμβάντων.
Ο αναλυτής είναι υπεύθυνος για την ανάγνωση του εγγράφου XML και την αποστολή συμβάντων στο πρόγραμμα χειρισμού συμβάντων, όπως συμβάντα έναρξης και λήξης στοιχείου
Ο επεξεργαστής συμβάντων είναι υπεύθυνος για την απόκριση στα συμβάντα και την επεξεργασία των δεδομένων XML που διαβιβάζονται
Κοινά σενάρια:
(1) Επεξεργαστείτε μεγάλα έγγραφα
(2) Απαιτείται μόνο μέρος του εγγράφου ή συγκεκριμένες πληροφορίες λαμβάνονται μόνο από τον φάκελο
(3) Θέλω να φτιάξω το δικό μου μοντέλο αντικειμένου
|