lxml είναι ένα εκλεπτυσμένο, ισχυρό, δωρεάν και μοναδική μονάδα Python που συνδέει τις libxml2 και libxslt βιβλιοθήκες, επιτρέποντας την Python ώστε να δουλεύουν με τόσο XML και HTML αρχεία εμπιστευτικές Python code.An επεξεργασίας XML librarylxml τους είναι ένα XML (Extensible Markup Language ) επεξεργασία βιβλιοθήκη γραμμένο στη γλώσσα προγραμματισμού Python, ειδικά σχεδιασμένο για να ακολουθήσει τις προδιαγραφές ElementTree API όσο το δυνατόν περισσότερο.
Μπορεί να επεκτείνει την ElementTree API για να εκθέσει συγκεκριμένες λειτουργίες των libxslt και libxml2 βιβλιοθήκες, όπως Relax NG (Next Generation-), XPath, XML Schema, c14n, XSLT (Extensible Stylesheet Language), etc.Use lxml να καλέσετε κώδικα Python από stylesheetsDevelopers XSLT θα είναι σε θέση να χρησιμοποιήσει το πρόγραμμα lxml να καλέσετε κώδικα Python από φύλλα στυλ XSLT και εκφράσεις XPath με τις λειτουργίες της επέκτασης. Ένα ευρύ φάσμα των tutorials είναι διαθέσιμα για το έργο & rsquo? S αρχική σελίδα (δείτε το link στο τέλος του άρθρου).
Το λογισμικό είναι ανοιχτού κώδικα από το σχεδιασμό και συνδυάζει το χαρακτηριστικό πληρότητα και την ταχύτητα των προαναφερθέντων βιβλιοθηκών με την απλότητα της Python & rsquo? S API (διασύνδεση προγραμματισμού εφαρμογών) .Getting ξεκίνησε με lxmlIt είναι αρκετά εύκολο να εγκαταστήσετε lxml σε μια διανομή GNU / Linux χρησιμοποιώντας το Αρχείο πηγή διανέμεται Softoware και το έργο & rsquo? s επίσημη ιστοσελίδα. Απλά κατεβάστε το πηγαίο πακέτο, αποθηκεύστε το στο σπίτι σας κατάλογο, αποσυμπιέστε το, ανοίξτε το Τερματικό app και πλοηγηθείτε στην τοποθεσία των εξαγομένων αρχεία αρχειοθέτησης (π.χ. CD /home/softoware/lxml-3.4.1).
Εκτελέστε το & lsquo? Να & rsquo? εντολή για την κατάρτιση του προγράμματος, η οποία θα διαρκέσει περίπου 1-2 λεπτά σε ένα σύγχρονο υπολογιστή. Μετά από μια επιτυχημένη συλλογή, εκτελέστε το & lsquo? Make install & rsquo? εντολή ως root ή το & lsquo? sudo make install & rsquo? εντολή ως προνομιούχο χρήστη να εγκαταστήσει lxml wide.Supports σύστημα GNU / Linux και Microsoft Windows λειτουργικό systemsThe λογισμικού υποστηρίζεται επίσημα σε λειτουργικά συστήματα GNU / Linux και Microsoft Windows. Έχει δοκιμαστεί με επιτυχία σε υπολογιστές 32-bit και 64-bit
Τι είναι καινούργιο σε αυτή την έκδοση:.
- Χαρακτηριστικά πρόσθεσε:
- Νέα γεννήτρια htmlfile HTML που θα συνοδεύει την αυξητική xmlfile σειριοποίησης API. Patch του Burak Αρσλάν.
- σφάλματα σταθερό:
- lxml.sax.ElementTreeContentHandler δεν αρχικών υπερκλάση του.
Τι είναι καινούργιο στην έκδοση 3.3.1:
- σφάλματα σταθερό:
- LP # 1014290: έγγραφα HTML αναλυθεί με parser.feed () απέτυχε να βρει στοιχεία κατά τη διάρκεια της επανάληψης ετικέτα .
- LP # 1273709: Κτίριο σε PyPy απέτυχε λόγω της απουσίας υποστήριξης για PyUnicode_Compare () και PyByteArray _ * () σε C-API PyPy του .
- LP # 1274413: Συγκέντρωση στο MSVC απέτυχε λόγω της απουσίας & quot? Stdint.h & quot? πρότυπο αρχείο κεφαλίδας.
- LP # 1274118: iterparse () απέτυχε να αναλύσει BOM πρόθεμα αρχεία .
Τι είναι καινούργιο στην έκδοση 3.0 Alpha 2:
- Χαρακτηριστικά πρόσθεσε:
- Η μέθοδος .iter () των στοιχείων τώρα δέχεται τα επιχειρήματα ετικέτα, όπως & quot? {*} Όνομα & quot? για να αναζητήσετε στοιχεία με μια συγκεκριμένη τοπική όνομα σε κάθε χώρο ονομάτων. Με την προσθήκη αυτή, όλοι οι συνδυασμοί των μπαλαντέρ τώρα λειτουργούν όπως αναμένεται: & quot? {Ns} όνομα & quot ;, & quot? {} Όνομα & quot ;, & quot? {*} Όνομα & quot ;, & quot? {Ns} * & quot ;, & quot? {} * & quot? και & quot? {*} * & quot ;. Σημειώστε ότι & quot? Όνομα & quot? είναι ισοδύναμη με την & quot?} {όνομα & quot ;, αλλά & quot? * & quot? είναι & quot? {*} * & quot ;. Το ίδιο ισχύει και για αλλαγή του .getiterator (), .itersiblings (), .iterancestors (), .iterdescendants (), .iterchildren () και .itertext () μεθόδους? Τα strip_attributes (), strip_elements () και strip_tags () λειτουργίες καθώς και την iterparse () κατηγορία.
- C14N επιτρέπει τον προσδιορισμό των αποκλεισμούς προθέματα που πρέπει να προωθηθούν για την υψηλού επιπέδου κατά τη διάρκεια της αποκλειστικής serialization.
- σφάλματα σταθερό:
- Περνώντας μακριά κορδόνια Unicode στο τροφοδοσίας () διεπαφή parser απέτυχε να διαβάσετε ολόκληρη τη συμβολοσειρά.
Τι είναι καινούργιο στην έκδοση 2.3.5:
- συντριβή κατά τη συγχώνευση κόμβους κειμένου σε element.remove ( ).
- Crash σε αναλυτή σαξόφωνο / στόχος κατά την αναφορά άδειο doctype.
Τι είναι καινούργιο στην έκδοση 2.3.4:
- Crash όταν την οικοδόμηση μιας nsmap (ακίνητο στοιχείο) με URIs άδειο χώρο ονομάτων.
- συντριβή οφείλεται σε κατάσταση αγώνα, όταν συμβαίνουν λάθη (ή τα μηνύματα του χρήστη) κατά τη διάρκεια σπείρωμα επεξεργασία XSLT.
- φύλλου στυλ XSLT σύνταξη θα μπορούσε να αγνοήσει σφάλματα μεταγλώττισης.
Τι είναι καινούργιο στην έκδοση 2.3.2:
- Χαρακτηριστικά πρόσθεσε:
- lxml.objectify.deannotate () έχει μια νέα cleanup_namespaces Boolean επιλογή για να αφαιρέσετε τα αντικειμενοποιούν δηλώσεις namespace (και γενικά καθαρίσει τις δηλώσεις namespace), μετά την αφαίρεση των σχολιασμών τύπου.
- lxml.objectify αποκτήσει τη δική υποστοιχείο () λειτουργία της ως αντίγραφο του etree.SubElement να αποφευχθεί μια ειδάλλως περιττή εισαγωγή του lxml.etree από την πλευρά του χρήστη.
- σφάλματα σταθερό:
- Σταθερή & quot? Απόγονος & quot? bug στο cssselect για δεύτερη φορά (μετά από μια πρώτη αποτύπωση σε lxml 2.3.1). Η προηγούμενη αλλαγή οδήγησε σε μια σοβαρή οπισθοδρόμηση για την απόδοση της XPath με βάση την αξιολόγηση της μεταφρασμένης έκφρασης. Σημειώστε ότι αυτό σπάει τη χρήση ορισμένων από τις εκφράσεις XPath που δημιουργούνται ως XSLT μονοπάτια θέση που στο παρελθόν εργάστηκε στην παράγραφο 2.3.1.
- Σταθερή parsing ορισμένων επιλογείς σε cssselect. Ο κενός χώρος μετά combinators & quot? & Gt? & Quot ;, & quot? + & Quot? και & quot? ~ & quot? είναι τώρα σωστά αγνοείται. Προηγουμένως είχε αναλυθεί είναι ως απόγονος συνδιασμών. Για παράδειγμα, & quot? Div & gt? .foo & quot? είχε αναλυθεί το ίδιο όπως & quot? div & gt? * .foo & quot? αντί του & quot? div & gt? .foo & quot?.
Τι είναι καινούργιο στην έκδοση 2.3.1:
- Χαρακτηριστικά πρόσθεσε:
- Νέα επιλογή kill_tags σε lxml.html.clean για να αφαιρέσετε τις ετικέτες και το περιεχόμενό τους (δηλαδή ολόκληρο το υποδέντρο τους).
- pi.get () και pi.attrib με οδηγίες επεξεργασίας για να αναλύσει ψευδο-χαρακτηριστικά από το περιεχόμενο κειμένου των οδηγιών επεξεργασίας.
- lxml.get_include () επιστρέφει μια λίστα περιλαμβάνει διαδρομές που μπορούν να χρησιμοποιούνται για την κατάρτιση των εξωτερικών κώδικα C κατά lxml.etree. Αυτό απαιτείται ειδικά για στατικά συνδεδεμένο lxml χτίζει όταν ο κώδικας πρέπει να καταρτίζει κατά ακριβώς τις ίδιες εκδόσεις το αρχείο κεφαλίδα lxml ίδια.
- Resolver.resolve_file () παίρνει μια επιπλέον close_file επιλογή που ρυθμίζει αν το αρχείο (αναλόγου) αντικείμενο θα κλείσει μετά την ανάγνωση ή όχι. Από προεπιλογή, το αρχείο θα κλείσει, καθώς ο χρήστης δεν αναμένεται να κρατήσει μια αναφορά σε αυτό.
- σφάλματα σταθερό:
- καθαρισμού HTML δεν αφαίρεση 'δεδομένα: ». Συνδέσεις
- Η ένταξη html5lib parser χρησιμοποιεί τώρα την 'επίσημη' εφαρμογή στην ίδια html5lib, η οποία καθιστά την εργασία με νεότερες εκδόσεις της βιβλιοθήκης.
- Σε lxml.sax, endElementNS () θα μπορούσε να απορρίψει εσφαλμένα ένα απλό όνομα ετικέτας, όταν η αντίστοιχη εκδήλωση έναρξης συναχθεί το ίδιο απλό όνομα ετικέτας να είναι το προεπιλεγμένο namespace.
- Όταν ένα ανοιχτό αρχείο που μοιάζει με αντικείμενο περνά μέσα μεταγλώττιση () ή iterparse (), το πρόγραμμα ανάλυσης δεν είναι πλέον κοντά μετά τη χρήση θα. Αυτό επαναφέρει μια αλλαγή στην lxml 2.3 όπου θα κλείσει όλα τα αρχεία. Είναι ευθύνη των χρηστών να κλείσει σωστά το αρχείο (αναλόγου) αντικείμενο, επίσης, σε περιπτώσεις λαθών.
- σφάλμα Ισχυρισμός σε lxml.html.cleaner όταν απόρριψη στοιχεία ανώτατου επιπέδου.
- Σε lxml.cssselect, χρησιμοποιήστε το XPath «Α // Β '(μικρή για« Α / απόγονος-ή-αυτο :: κόμβο () / Β') αντί του «Α / απόγονος :: Β 'για το CSS απόγονος επιλογέα («Α Β»). Αυτό κάνει μερικές περιπτώσεις άκρη για να είναι συνεπής με τη συμπεριφορά επιλογέα στο WebKit και Firefox, και κάνει περισσότερες εκφράσεις CSS έγκυρες διαδρομές θέση (για χρήση σε XSL: πρότυπο αγώνα).
- Σε lxml.html, μη επιλεγμένες ετικέτες εμφανίζονται πλέον στις τιμές που συλλέγονται μορφή.
- Η προσθήκη / αφαίρεση τιμές προς / από ένα πολλαπλάσιο επιλέξτε πεδίο φόρμας τους επιλέγει σωστά και να αποεπιλέγει.
- Άλλες αλλαγές:
- Στατική χτίζει να καθορίσετε τον κατάλογο λήψης με την επιλογή --download-σκην.
Τι είναι καινούργιο στην έκδοση 2.3:
- Χαρακτηριστικά πρόσθεσε:
- Όταν ψάχνετε για παιδιά, lxml.objectify παίρνει »{} ετικέτα» υπό την έννοια ένα άδειο χώρο ονομάτων, σε αντίθεση με το γονικό χώρο ονομάτων.
- σφάλματα σταθερό:
- Όταν τελειώσετε την ανάγνωση από ένα αρχείο που μοιάζει με αντικείμενο, το πρόγραμμα ανάλυσης καλεί αμέσως (μέθοδος της .close).
- Όταν τελειώσετε την ανάλυση, iterparse () κλείνει αμέσως το αρχείο εισόδου.
- Εργασία-γύρω για libxml2 bug που μπορεί να αφήσει το πρόγραμμα ανάλυσης HTML σε ένα μη λειτουργικό κράτος, μετά την ανάλυση ενός χειροτερεύει σπασμένο έγγραφο (που καθορίζεται στο libxml2 2.7.8).
- μάρκα ετικέτα σε κώδικα HTML καθαρισμού είναι σωστά ονομάζεται marquee.
- Άλλες αλλαγές:
- Ορισμένες δημόσιες λειτουργίες στο Cython επιπέδου C-API έχουν πιο σαφείς τύπους επιστροφής.
Τι είναι καινούργιο στην έκδοση 2.2.8 / 2.3 Beta 1:
- Crash σε νεότερες εκδόσεις όταν libxml2 κινούμενα στοιχεία μεταξύ εγγράφων που είχαν χαρακτηριστικά σε αντικατάσταση κόμβους XInclude.
- XMLID () συνάρτηση έλειπε το προαιρετικό πρόγραμμα ανάλυσης και base_url παραμέτρους.
- Ψάχνοντας για ετικέτες μπαλαντέρ στο iterparse () είχε σπάσει σε Py3.
- lxml.html.open_in_browser () δεν λειτούργησε στην Python 3, λόγω της χρήσης του os.tempnam. Παίρνει τώρα ένα προαιρετικό «κωδικοποίηση» παράμετρος.
Απαιτήσεις :
- Python
Τα σχόλια δεν βρέθηκε