lxml ist ein hochentwickeltes, leistungsfähiges freies und einzigartige Python-Modul, das die libxml2 und libxslt Bibliotheken bindet, so dass Python-Entwickler, um mit XML und HTML-Dateien Insider ihre Python code.An XML-Verarbeitung librarylxml ist eine XML (Extensible Markup Language arbeiten ) Verarbeitungsbibliothek in der Programmiersprache Python geschrieben, speziell entwickelt, um die ElementTree API-Spezifikation so weit wie möglich zu folgen.
Es kann die ElementTree API erweitern, um bestimmte Funktionen der libxslt und libxml2 Bibliotheken, wie Relax NG (Next Generation), XPath, XML Schema, C14N, XSLT (Extensible Stylesheet Language) aussetzen, um etc.Use lxml Python-Code aus aufrufen XSLT stylesheetsDevelopers in der Lage, die lxml Programm verwenden, um Python-Code von XSLT-Stylesheets und XPath-Ausdrücke über Neben Funktionen aufrufen. Eine große Auswahl an Tutorials sind an dem Projekt & rsquo verfügbar; s Homepage (siehe Link am Ende des Artikels).
Die Software ist Open-Source-Design und kombiniert die Funktion Vollständigkeit und Geschwindigkeit der genannten Bibliotheken mit der Einfachheit von Python & rsquo; s-API (Application Programming Interface) .Ein Angebot startete mit lxmlIt ist ganz einfach zu lxml auf einem GNU / Linux-Distribution mit dem Installations Quellarchiv an Softoware und Projekt & rsquo verteilt; offiziellen Website. Laden Sie einfach die Quellpaket, speichern Sie es auf Ihrem Home-Verzeichnis, entpacken Sie es, öffnen Sie die Terminal-Anwendung und navigieren Sie zum Speicherort der extrahierten Archivdateien (zB cd /home/softoware/lxml-3.4.1).
Führen Sie die & lsquo; machen & rsquo; Befehl, um das Programm, das etwa 1-2 Minuten auf einem modernen Computer übernehmen sollte kompilieren. Nachdem die Kompilierung, führen Sie den & lsquo; make install & rsquo; Befehl als root oder & lsquo; sudo make install & rsquo; Befehl als privilegierter Benutzer zu lxml System wide.Supports GNU / Linux und Microsoft Windows-Betriebssystemesoftware wird offiziell auf GNU / Linux und Microsoft Windows-Betriebssystemen unterstützt installieren. Es wurde erfolgreich auf 32-Bit und 64-Bit-Computern geprüft
Was ist neu in dieser Pressemitteilung:.
- Funktionen fügte hinzu:
- New htmlfile HTML-Generator, um die inkrementelle xmlfile Serialisierung-API zu begleiten. Patch von Burak Arslan.
- Fehler behoben:
- lxml.sax.ElementTreeContentHandler nicht ihrer Superklasse zu initialisieren.
Was ist neu in Version 3.3.1:
- Fehler behoben:
- LP # 1014290: HTML-Dokumente mit parser.feed analysiert () konnte Elemente während der Tag-Iteration zu finden .
- LP # 1273709: Gebäude in PyPy gescheitert wegen fehlender Unterstützung für PyUnicode_Compare () und PyByteArray _ * () in PyPy C-API .
- LP # 1274413: Zusammenstellung in MSVC scheiterte an fehlenden & quot; stdint.h & quot; Standard-Header-Datei.
- LP # 1274118: iterparse () fehlgeschlagen zu analysieren BOM voran Dateien .
Was ist neu in der Version 3.0 Alpha 2:
- Features hinzugefügt:
- Die .iter () Methode der Elemente akzeptiert jetzt Tag Argumente wie & quot; {*} Namen & quot; für Elemente mit einer bestimmten lokalen Namen in jedem Namespace zu suchen. Mit diesem Zusatz nun alle Kombinationen von Wildcards wie erwartet: & quot; {ns} Name & rdquo ;, & quot; {} Name & rdquo ;, & quot; {*} Name & rdquo ;, & quot; {ns} * & rdquo ;, & quot; {} * & quot; und & quot; {*} * & quot ;. Beachten Sie, dass & quot; Namen & quot; ist gleichbedeutend mit & quot; {} Namen & quot ;, aber & quot; * & quot; ist & quot; {*} * & quot ;. Das gleiche gilt auch für die Änderung .getiterator (), .itersiblings (), .iterancestors (), .iterdescendants (), .iterchildren () und .itertext () Methoden, die strip_attributes (), strip_elements () und strip_tags () Funktionen sowie die iterparse () Klasse.
- C14N ermöglicht Angabe der integrativen Präfixe auf der obersten Ebene im exklusiven Serialisierung gefördert werden.
- Fehler behoben:
- Übergeben lange Unicode-Strings in den Einzug () Parser-Schnittstelle nicht die gesamte Zeichenfolge zu lesen.
Was ist neu in Version 2.3.5:
- Absturz beim Zusammenführen von Textknoten in element.remove ( ).
- Absturz in sax / Ziel Parser bei der Berichterstattung leer doctype.
Was ist neu in Version 2.3.4:
- Absturz beim Aufbau einer nsmap (Element-Eigenschaft) mit leeren Namensraum-URIs.
- Absturz auf Grund der Rasse Zustand, wenn Fehler (oder Benutzernachrichten) treten während der Gewinde XSLT-Verarbeitung.
- XSLT-Stylesheet Zusammenstellung könnte Kompilierungsfehler ignorieren.
Was ist neu in Version 2.3.2:
- Features hinzugefügt:
- lxml.objectify.deannotate () hat eine neue boolean Option cleanup_namespaces die objektivieren Namespace-Deklarationen zu entfernen (und in der Regel bereinigen, die Namespace-Deklarationen) nach dem Entfernen der Typanmerkungen.
- lxml.objectify seine eigene Unterelement () -Funktion als Kopie etree.SubElement ein ansonsten redundante Import von lxml.etree auf der Benutzerseite zu vermeiden gesammelt.
- Fehler behoben:
- Der Fehler, der & quot; Nachkomme & quot; Fehler in cssselect ein zweites Mal (nach einem ersten Update in lxml 2.3.1). Die vorherige Änderung führte zu einer erheblichen Leistungs Regression für die XPath-basierte Auswertung des übersetzten Ausdruck. Beachten Sie, dass diese bricht die Nutzung eines Teils der erzeugten XPath-Ausdrücke wie XSLT Standortpfade, die zuvor in 2.3.1 funktioniert.
- Feste Parsen von einigen Selektoren in cssselect. Whitespace nach Kombinatoren & quot; & Gt; & rdquo ;, & quot; + & quot; und & quot; ~ & quot; wird nun korrekt ignoriert. Bisher ist als ein Nachkomme combinator analysiert. Beispielsweise & ldquor; div & gt; .foo & quot; wurde wie geparst & quot; div & gt; * .foo & quot; anstelle von & quot; div & gt; .foo & quot;.
Was ist neu in Version 2.3.1:
- Features hinzugefügt:
- Neue Option kill_tags in lxml.html.clean auf bestimmte Tags und deren Inhalt (dh die gesamte Unterbaum) zu entfernen.
- pi.get () und pi.attrib auf Verarbeitungsanweisungen, um Pseudo-Attribute aus dem Textinhalt der Verarbeitungshinweise zu analysieren.
- lxml.get_include () gibt eine Liste der Include-Pfade, die verwendet werden können, um externe C-Code gegen lxml.etree kompilieren. Dies ist speziell für statisch gelinkte lxml erforderlich baut, wenn Code muss gegen die gleichen Header-Datei-Versionen als lxml selbst kompilieren.
- Resolver.resolve_file () nimmt eine zusätzliche Option close_file, die, wenn die Datei (-artigen) Objekt wird nach dem Lesen oder nicht geschlossen werden konfiguriert. Standardmäßig wird die Datei geschlossen werden, da der Benutzer nicht erwartet, dass ein Verweis auf sie zu halten.
- Fehler behoben:
- HTML Reinigung nicht entfernen 'Daten:'. Links
- nutzt die html5lib Parser Integration nun die "offizielle" Einführung in html5lib selbst, die es mit neueren Versionen der Bibliothek zu arbeiten macht.
- In lxml.sax könnte endElementNS () falsch abzulehnen einen einfachen Tag-Namen, wenn das zugehörige Startereignis abgeleitet die gleiche Ebene Tag-Namen in der Standard-Namespace sein.
- Wenn eine geöffnete Datei artigen Gegenstand in parse () übergeben oder iterparse (), wird der Parser nicht mehr schließen es nach dem Gebrauch. Dieser kehrt eine Änderung lxml 2.3 in dem alle Dateien geschlossen würden. Es ist die Verantwortung des Benutzers, um im Fehlerfall richtig schließen Sie die Datei (-artigen) Objekt, auch.
- Assertion-Fehler in lxml.html.cleaner wenn Verwerfen Elemente der obersten Ebene.
- In lxml.cssselect, verwenden Sie die xpath "A // B '(kurz für' A / descendant-or-self :: node () / B ') anstelle von" A / descendant :: B' für die css Nachkommen-Selektor ("A B '). Dies macht ein paar Grenzfälle, die mit dem Wahlverhalten in WebKit und Firefox, um sein und macht mehr CSS-Ausdrücke gültig Standortpfade (für den Einsatz in xsl: template match).
- In lxml.html, nicht ausgewählten Tags nicht mehr angezeigt, in den gesammelten Formularwerte.
- Hinzufügen / Entfernen von Werten zu / von einer Mehrfach-Auswahl Formularfeld richtig wählt sie und hebt die Auswahl zu.
- Weitere Änderungen:
- Static baut die Download-Verzeichnis mit dem --download-dir Option angeben.
Was ist neu in der Version 2.3:
- Features hinzugefügt:
- Bei der Suche nach Kindern, nimmt lxml.objectify '{}-Tag "im Sinne von einen leeren Namensraum, im Gegensatz zu der übergeordneten Namespace.
- Fehler behoben:
- Beim Lesen aus einer Datei-ähnliches Objekt abgeschlossen ist, ruft der Parser sofort seine .close () -Methode.
- Wenn Sie fertig sind Parsing, iterparse () schließt sofort die Eingabedatei.
- Arbeit-around für libxml2 Fehler, der HTML-Parser in einem nicht funktionsfähigen Zustand nach dem Parsen eine severly gebrochen Dokument (in libxml2 2.7.8 behoben) verlassen.
- marque-Tag im HTML-Bereinigungscode korrekt benannt Zelt.
- Weitere Änderungen:
- Einige öffentliche Funktionen im Cython-Level-C-API haben expliziter Rückgabetypen.
Was ist neu in der Version 2.2.8 / 2.3 Beta 1:
- Absturz in neueren Versionen als libxml2 Verschieben von Elementen zwischen Dokumenten, die Attribute für ersetzt XInclude Knoten hatte.
- XMLID () -Funktion wurde die optionalen Parser und base_url Parameter fehlt.
- Die Suche nach Wildcard-Tags in iterparse () wurde in py3 gebrochen.
- lxml.html.open_in_browser () nicht in Python 3 durch den Einsatz von os.tempnam arbeiten. Es braucht jetzt einen optionalen Parameter 'encoding'.
Anforderungen :
- Python
Kommentare nicht gefunden