LXML kombinerer hastigheden af disse biblioteker med enkelheden i Python sproget.
Kompatibel med alle CPython versioner 2,4-3,2
Hvad er nyt i denne udgivelse:.
- lxml.html.iterlinks nu returnerer links inde meta refresh tags.
- Ny XMLParser option collect_ids = False at deaktivere ID hashtabel skabelse. Dette kan væsentligt hurtigere parsing af dokumenter med mange forskellige ID'er, der ikke anvendes.
- parser bruger per-dokument hash tabeller for XML-id'er. Dette reducerer belastningen af det globale parser dict og fremskynder parsing til dokumenter med mange forskellige id'er.
- ElementTree.getelementpath (element) giver en strukturel ElementPath udtryk for det givne element, som kan anvendes til opslag senere.
- xmlfile () accepterer et nyt argument tæt = True at lukke fil (-lignende) objekter efter at have skrevet til dem. Før, xmlfile () kun lukket filen, hvis det havde åbnet det internt.
- Tillad & quot; bytearray & quot; type til input ASCII tekst.
Hvad er nyt i version 3.4.2:
- lxml.html.iterlinks nu returnerer links inde meta genopfriske tags.
- Ny XMLParser option collect_ids = False at deaktivere ID hashtabel skabelse. Dette kan væsentligt hurtigere parsing af dokumenter med mange forskellige ID'er, der ikke anvendes.
- parser bruger per-dokument hash tabeller for XML-id'er. Dette reducerer belastningen af det globale parser dict og fremskynder parsing til dokumenter med mange forskellige id'er.
- ElementTree.getelementpath (element) giver en strukturel ElementPath udtryk for det givne element, som kan anvendes til opslag senere.
- xmlfile () accepterer et nyt argument tæt = True at lukke fil (-lignende) objekter efter at have skrevet til dem. Før, xmlfile () kun lukket filen, hvis det havde åbnet det internt.
- Tillad & quot; bytearray & quot; type til input ASCII tekst.
Hvad er nyt i version 3.3.2:
- De egenskaber resolvere og versionen, samt metoder set_element_class_lookup () og makeelement (), blev tabt fra iterparse objekter.
- Tilfælde af XMLSchema, schematron og RelaxNG ikke rydde deres lokale error_log, før du kører en validering.
- lxml.doctestcompare blandet op & quot; forventet & quot; og & quot; faktiske & quot; i attributværdier.
Hvad er nyt i version 3.3.1:
- Bugs fast:
- HTML-dokumenter parsede med parser.feed () undladt at finde elementer under tag iteration.
- Building i PYPY mislykkedes på grund af manglende støtte til PyUnicode_Compare () og PyByteArray _ * () i PYPY s C-API.
- Compilation i MSVC mislykkedes på grund af manglende & quot; stdint.h & quot; standard header fil.
- iterparse () undlod at parse BOM præfiks filer.
Hvad er nyt i version 3.3.0:
- Bugs fast:
- heuristisk der adskiller filstier fra URL'er blev strammet til at producere mindre falsk negative.
Hvad er nyt i version 3.2.3:
- Fast støtte til Python 2.4, som blev tabt i 3.2 .2.
Hvad er nyt i version 3.2.1:
- De metoder apply_templates () og process_children () i XSLT extension elementer har fået to nye boolean muligheder elements_only og remove_blank_text at kassere enten alle strenge eller blanke-only strenge fra resultatlisten.
Hvad er nyt i version 3.2.0:
- Førende mellemrum kunne ændre adfærd strengen parsing funktioner i lxml.html.
- Strengen parsing funktioner i lxml.html er mere robuste over for ualmindelige HTML-indhold som framesets eller mangler krop tags.
- I / O fejl under forsøget på at få adgang til filer med stier, der indeholder ikke-ASCII-tegn kunne øge UnicodeDecodeError stedet for korrekt rapportering IOError.
- Tolker fra in-memory strings deaktiveret netadgang i standard parser og gjort efterfølgende forsøg på at parse fra en URL mislykkes.
Hvad er nyt i version 3.1.2:
- Passing attributter gennem namespace-uvidende API af sax bro (dvs. handler.startElement () metode) mislykkedes med en TypeError.
- Fast serialisering fejl i XSLT output ved konvertering resultatet træ til en Unicode-streng.
Hvad er nyt i version 3.0.2:
- Fast nedbrud under tolk nedlukning ved at skifte til Cython 0,17 .3 for bygningen.
Hvad er nyt i version 3.0:
- C14N tillader angivelse af de inklusive præfikser at blive forfremmet til top- niveau i eksklusiv serialisering.
- Initial støtte til opbygning i PYPY (gennem cpyext).
- vundet DTD objekter et API, der giver læseadgang til deres erklæringer.
- xpathgrep.py vundet støtte til parsing linje for linje (fx fra grep output), og for omkring output med en ny rod tag.
- E-fabrik i lxml.builder accepterer undertyper af kendte datatyper (såsom string undertyper), når man bygger elementer omkring dem.
- Tree iteration og iterparse () med en selektiv tag argument understøtter passerer et sæt tags. Tree noder vil blive returneret ved iteratorer hvis de svarer til nogen af de tags.
Hvad er nyt i version 2.3.5:
- Crash når sammenlægning tekst knudepunkter i element.remove ( ).
- Crash i sax / target parser ved indberetning tom doctype.
Hvad er nyt i version 2.3.4:
- Crash når bygningen en nsmap (Element ejendom) med tomme namespace URI'er.
- Crash grundet race condition, når fejl (eller bruger-meddelelser) forekomme under gevind XSLT forarbejdning.
- XSLT stylesheet kompilering kunne ignorere kompilering fejl.
Hvad er nyt i version 2.3.3:
- Features tilføjes:
- lxml.html.tostring () fået nye serialisering muligheder with_tail og doctype.
- Bugs fast:
- Rettet et nedbrud, når du bruger iterparse () til HTML parsing og anmoder om start-arrangementer.
- Fast parsing af flere selektorer i cssselect. Mellemrum før pseudo-elementer og pseudo-klasser er vigtig, da det er en efterkommer combinator. & Quot; E: pseudo & quot; bør parse det samme som & quot; E *: pseudo & quot ;, ikke & quot; E:. pseudo & quot;
- lxml.html.diff ikke længere rejser en undtagelse, når den rammer "img tags uden 'src' attribut.
Hvad er nyt i version 2.3.2:
- Features tilføjes:
- lxml.objectify.deannotate () har en ny boolean mulighed cleanup_namespaces at fjerne de objektivere namespace erklæringer (og generelt rydde op i namespace erklæringer) efter fjernelse af typen anmærkninger.
- lxml.objectify fik sin egen delelement () funktion som en kopi af etree.SubElement at undgå en ellers overflødige import af lxml.etree på brugerens side.
- Bugs fast:
- Fast & quot; efterkommer & quot; fejl i cssselect en anden gang (efter en første fix i LXML 2.3.1). Den tidligere ændring resulterede i en alvorlig præstation regression for XPath baserede evaluering af den oversatte udtryk. Bemærk, at dette bryder brugen af nogle af de genererede XPath udtryk som XSLT placering stier, der tidligere har arbejdet i 2.3.1.
- Fast parsing af nogle vælgere i cssselect. Mellemrum efter combinators & quot; & # x3e; & quot ;, & quot; + & quot; og & quot; ~ & quot; er nu korrekt ignoreret. Tidligere er blev tolkes som en efterkommer combinator. For eksempel, & quot; div & # x3e; .foo & quot; blev analyseret på samme måde som & quot; div & # x3e * .foo & quot; i stedet for & quot; div & # x3e; .foo & quot;.
Hvad er nyt i version 2.3.1:
- Features tilføjes:
- Ny mulighed kill_tags i lxml.html.clean at fjerne bestemte tags og deres indhold (dvs. hele deres undertræ).
- pi.get () og pi.attrib på behandlingsinstruktioner at parse pseudo-attributter fra teksten indholdet af behandlingsinstruktioner.
- lxml.get_include () returnerer en liste over omfatter stier, der kan bruges til at kompilere ekstern C-kode mod lxml.etree. Dette specielt kræves for statisk forbundet LXML bygger, når kode skal kompilere mod præcis de samme header filversioner som LXML sig selv.
- Resolver.resolve_file () tager en ekstra mulighed close_file der konfigurerer hvis filen (-lignende) objekt vil blive lukket efter at have læst eller ej. Som standard, vil filen blive lukket, da brugeren ikke forventes at holde en henvisning til den.
- Bugs fast:
- HTML rengøring ikke fjerne 'data: ". Links
- html5lib parser integration bruger nu den 'officielle' implementering i html5lib selv, hvilket gør det til at fungere med nyere versioner af biblioteket.
- I lxml.sax, kunne endElementNS () fejlagtigt afviser en almindelig tag navn, når den tilsvarende starten begivenhed udledte samme almindeligt tag navn til at være i standard navnerummet.
- Når en åben fil-lignende objekt ledes ind parse () eller iterparse (), vil parseren ikke længere tæt det efter brug. Dette reverterer en ændring i LXML 2.3, hvor alle filer ville være lukket. Det er brugernes ansvar at korrekt lukke filen (-lignende) objekt, også i fejl tilfælde.
- Assertion fejl i lxml.html.cleaner når de skiller top-niveau elementer.
- I lxml.cssselect bruge XPath »A // B (forkortelse for» A / efterkommer-eller-selv :: node () / B ') i stedet for »A / efterkommer :: B« for css efterkommer selector (»A B '). Dette gør et par kant tilfælde at være i overensstemmelse med vælgeren adfærd i WebKit og Firefox, og gør flere css udtryk gyldige placering stier (til brug i xsl: template match).
- I lxml.html, ikke-valgte & # X3C; option & # x3e; tags ikke længere dukke op i de indsamlede danner værdier.
- Tilføjelse / fjernelse & # X3C; option & # x3e; værdier til / fra en udvalgt formularfelt multiple ordentligt vælger dem og Afmarkerer dem.
- Andre ændringer:
- Static bygger kan angive download mappe med --download-dir mulighed.
Hvad er nyt i version 2.3:
- Features tilføjes:
- Når man ser for børn, lxml.objectify tager '{} tag' som betyder en tom namespace, i modsætning til den forælder namespace.
- Bugs fast:
- Når færdig med at læse fra en fil-lignende objekt, parseren straks kalder sin .Luk () metode.
- Når du er færdig parsing, iterparse () umiddelbart lukker inddatafilen.
- Work-around for libxml2 bug, der kan forlade HTML parser i en ikke-funktionel tilstand efter parsing et alvorligt brudt dokument (fast i libxml2 2.7.8).
- Marque tag i HTML oprydning kode er opkaldt lysavis korrekt.
- Andre ændringer:
- Nogle offentlige funktioner i Cython-niveau C-API har mere eksplicitte afkast typer.
Hvad er nyt i version 2.3beta1:
- Bugs fast:
- Crash i nyere libxml2 versioner, når du flytter elementer mellem dokumenter, der havde attributter på udskiftede XInclude noder.
- XMLID () funktion manglede de valgfri parser og base_url- parametre.
- Søgning efter wildcard tags i iterparse () blev brudt i Py3.
- lxml.html.open_in_browser () virkede ikke i Python 3 på grund af brugen af os.tempnam. Det tager nu en valgfri "kodning" parameter.
Kommentarer ikke fundet