lxml kombinerar hastigheten på dessa bibliotek med enkelheten i Python-språket.
Kompatibel med alla CPython versioner 2,4-3,2
Vad är nytt i den här versionen:.
- lxml.html.iterlinks nu returnerar länkar i metauppdaterings taggar.
- New XMLParser options collect_ids = false för att inaktivera ID hashtabellen skapelse. Detta kan avsevärt påskynda tolkning av dokument med många olika ID som inte används.
- parser använder per-dokument hashtabeller för XML-ID. Detta minskar belastningen på den globala tolken dict och påskyndar parsning för dokument med många olika ID: n.
- ElementTree.getelementpath (elementet) returnerar en strukturell ElementPath uttrycket för det givna elementet, som kan användas för uppslag senare.
- xmlfile () godtar ett nytt argument nära = Sant att stänga filen (-liknande) objekt efter att ha skrivit dem. Tidigare xmlfile () endast stängt filen om det hade öppnat det internt.
- Tillåt & quot; Array & quot; typ för ASCII textinmatning.
Vad är nytt i version 3.4.2:
- lxml.html.iterlinks återgår nu länkarna i meta uppdatera taggar.
- New XMLParser options collect_ids = false för att inaktivera ID hashtabellen skapelse. Detta kan avsevärt påskynda tolkning av dokument med många olika ID som inte används.
- parser använder per-dokument hashtabeller för XML-ID. Detta minskar belastningen på den globala tolken dict och påskyndar parsning för dokument med många olika ID: n.
- ElementTree.getelementpath (elementet) returnerar en strukturell ElementPath uttrycket för det givna elementet, som kan användas för uppslag senare.
- xmlfile () godtar ett nytt argument nära = Sant att stänga filen (-liknande) objekt efter att ha skrivit dem. Tidigare xmlfile () endast stängt filen om det hade öppnat det internt.
- Tillåt & quot; Array & quot; typ för ASCII textinmatning.
Vad är nytt i version 3.3.2:
- De egenskaper resolver och version, samt metoder set_element_class_lookup () och makeelement (), försvann från iterparse objekt.
- instanser av XMLSchema, Schema och RelaxNG inte klara sin lokala error_log innan du kör en validering.
- lxml.doctestcompare blandas ihop & quot; förväntat & quot; och & quot; faktisk & quot; i attributvärden.
Vad är nytt i version 3.3.1:
- Buggar fast:
- HTML-dokument analyserade med parser.feed () misslyckades med att hitta element under taggen iteration.
- Att bygga i PyPy misslyckades på grund av saknad stöd för PyUnicode_Compare () och PyByteArray _ * () i PyPy: s C-API.
- Sammanställning i MSVC misslyckades på grund av saknad & quot; stdint.h & quot; standard header-fil.
- iterparse () misslyckades med att tolka BOM prefixet filer.
Vad är nytt i version 3.3.0:
- Buggar fast:
- Den heuristiska som skiljer sökvägar från webbadresser skärptes att producera mindre falskt negativa resultat.
Vad är nytt i version 3.2.3:
- Fixat stöd för Python 2.4 som förlorades i 3.2 .2.
Vad är nytt i version 3.2.1:
- De metoder apply_templates () och process_children () av XSLT förlängningselement har fått två nya boolean alternativ elements_only och remove_blank_text att kasta antingen alla strängar eller blank enbart strängar från resultatlistan.
Vad är nytt i version 3.2.0:
- Ledande blank kan förändra beteendet hos sträng tolkning funktioner i lxml.html.
- sträng tolkning funktioner i lxml.html är mer robusta inför ovanliga HTML-innehåll som ramuppsättningar eller saknas body-taggarna.
- I / O-fel när du försöker komma åt filer med banor som innehåller icke-ASCII-tecken kan öka UnicodeDecodeError stället för korrekt rapportera IOError.
- Analysera från i-minnet strängar funktionshindrade accessnätet i standard tolken och gjorde efterföljande försök att tolka från en URL misslyckas.
Vad är nytt i version 3.1.2:
- Passing attribut genom namnområdet-omedvetna API av sax bro (dvs. handler.startElement () metod) misslyckades med en Typfel.
- Fixat serialisering fel i XSLT utgång vid konvertering resultatet trädet till en Unicode-sträng.
Vad är nytt i version 3.0.2:
- Fixat krasch under tolk avstängning genom att byta till Cython 0,17 .3 för byggnaden.
Vad är nytt i version 3.0:
- C14N kan specificera inclusive prefix att bli befordrad till uppifrån nivå under exklusiv serialisering.
- Första stöd för att bygga i PyPy (genom cpyext).
- DTD objekt fick en API som möjliggör läsning tillgång till sina deklarationer.
- fick xpathgrep.py stöd för parsing linje-för-linje (t.ex. från grep utgång) och för att omge utgången med en ny rot tagg.
- E-fabrik i lxml.builder accepterar subtyper av kända datatyper (t.ex. sträng subtyper) när man bygger element runt dem.
- Tree iteration och iterparse () med en selektiv tag argument stöder passerar en uppsättning taggar. Trädnoder kommer att returneras av iteratorer om de matchar någon av taggarna.
Vad är nytt i version 2.3.5:
- Crash när sammanslagning textnoder i element.remove ( ).
- Crash i sax / target parser vid rapportering tom doctype.
Vad är nytt i version 2.3.4:
- Crash när man bygger en nsmap (Element egendom) med tom namn URI.
- Crash på grund av konkurrenstillstånd när fel (eller användarmeddelanden) inträffar under gäng XSLT behandling.
- XSLT sammanställning kunde ignorera kompileringsfel.
Vad är nytt i version 2.3.3:
- Funktioner läggas:
- lxml.html.tostring () fått nya serialisering alternativ with_tail och doctype.
- Buggar fast:
- Fixat en krasch när man använder iterparse () för HTML tolkning och begär start händelser.
- Fast tolkning av fler väljare i cssselect. Blanksteg före pseudo element och pseudo-klasser är betydande, eftersom det är en ättling Combinator. & Quot; E: pseudo & quot; bör tolka samma som & quot; E *: pseudo & quot ;, inte & quot; E:. pseudo & quot;
- lxml.html.diff inte längre ger ett undantag när slå "img" taggar utan "src" attributet.
Vad är nytt i version 2.3.2:
- Funktioner läggas:
- lxml.objectify.deannotate () har en ny boolean alternativ cleanup_namespaces att avlägsna objektifiera namnutrymmesdeklarationer (och allmänt städa upp namnutrymmesdeklarationer) efter avlägsnande av typanteckningar.
- lxml.objectify fick sin egen subelement () fungerar som en kopia av etree.SubElement att undvika en annars överflödig import av lxml.etree på användarsidan.
- Buggar fast:
- Fast & quot; ättling & quot; bugg i cssselect en andra gång (efter en första fix i lxml 2.3.1). Den tidigare förändringen resulterat i en allvarlig prestanda regression för XPath baserad utvärdering av den översatta uttryck. Observera att detta bryter användning av några av de genererade XPath-uttryck som XSLT plats stigar som tidigare arbetat i 2.3.1.
- Fast tolkning av vissa väljare i cssselect. Blank efter kombinatorer & quot; & # x3e; & quot ;, & quot; + & quot; och & quot; ~ & quot; är nu korrekt ignoreras. Tidigare har var analyseras som en ättling combinator. Till exempel, & quot; div & # x3e; .foo & quot; ades tolkas på samma sätt som & quot; div & # x3e; * .foo & quot; istället för & quot; div & # x3e; .foo & quot;.
Vad är nytt i version 2.3.1:
- Funktioner läggas:
- Ny möjlighet kill_tags i lxml.html.clean att avlägsna specifika taggar och deras innehåll (dvs. hela sin träd).
- pi.get () och pi.attrib om bearbetningsinstruktioner för att tolka pseudo attribut från innehållet i behandlingsinstruktioner text.
- lxml.get_include () ger en lista på bland annat vägar som kan användas för att sammanställa externa C-kod mot lxml.etree. Detta är särskilt krävs för statiskt länkade lxml bygger när koden måste kompilera mot exakt samma rubrik filversioner som lxml själv.
- Resolver.resolve_file () tar ytterligare ett alternativ close_file som konfigurerar om filen (-liknande) objektet kommer att stängas efter att ha läst eller inte. Som standard kommer filen att stängas, eftersom användaren inte förväntas hålla en hänvisning till det.
- Buggar fast:
- HTML rengöring inte bort "information". Länkar
- html5lib parser integration använder nu den "officiella" genomförande html5lib sig, vilket gör det att fungera med nyare versioner av biblioteket.
- I lxml.sax kunde endElementNS () felaktigt avvisa en vanlig taggnamn när motsvarande start händelsen slutsatsen samma slätten taggnamnet att vara i standardnamnutrymmet.
- När en öppen fil liknande föremål förs in parse () eller iterparse (), kommer tolken inte längre nära det efter användning. Detta återgår en förändring i lxml 2.3 där alla filer skulle vara stängd. Det är användarens ansvar att korrekt avsluta ärendet (-liknande) objekt, även i fall fel.
- Assertion fel i lxml.html.cleaner vid kassering toppnivå element.
- I lxml.cssselect använder xpath "A // B" (förkortning för "A / ättling-eller-själv :: nod () / B") istället för "A / ättling :: B" för css ättling väljaren ("A B"). Detta gör några kant fall vara förenliga med beteendet väljaren i WebKit och Firefox, och gör fler CSS uttryck giltig plats vägar (för användning i xsl: template match).
- I lxml.html, icke-vald & # x3c; alternativet & # x3e; taggar inte längre visa upp i samlad form värden.
- Lägga till / ta bort & # x3c; alternativet & # x3e; värden till / från en multipel väljer formulärfält väljer dem ordentligt och Avmarkerar dem.
- Andra förändringar:
- Statisk bygger kan ange hämtningskatalogen med --download-dir alternativ.
Vad är nytt i version 2.3:
- Funktioner läggas:
- När du letar efter barn, tar lxml.objectify '{} tag "som innebär ett tomt namnområde, i motsats till modernamnområdet.
- Buggar fast:
- När du är klar läser från en fil liknande föremål, anropar tolken omedelbart sin .Stäng metod ().
- När du är klar tolkning, iterparse () stänger omedelbart indatafilen.
- Arbete-around för libxml2 bugg som kan lämna HTML-tolken i en icke-fungerande tillstånd efter att tolka en severly bruten dokument (fast i libxml2 2.7.8).
- Marque tag i HTML sanering koden är korrekt namngivna tält.
- Andra förändringar:
- Vissa offentliga funktioner i Cython-nivå C-API har mer explicita typer återvändande.
Vad är nytt i version 2.3beta1:
- Buggar fast:
- Crash i nyare libxml2 versioner när du flyttar element mellan dokument som hade attribut på utbytta XInclude noder.
- XMLID () funktion saknades de frivilliga parser och base_url parametrar.
- Söka efter joker taggar i iterparse () bröts i Py3.
- lxml.html.open_in_browser () fungerade inte i Python 3 på grund av användningen av os.tempnam. Det tar nu en valfri "kodning" parametern.
Kommentarer hittades inte