LXML on hienostunut, tehokas, ilmainen ja ainutlaatuinen Python-moduuli, joka sitoo libxml2 ja libxslt kirjastot, jonka avulla Python kehittäjiä sekä XML ja HTML-tiedostoja sisäpiirin niiden Python code.An XML käsittely librarylxml on XML (Extensible Markup Language ) käsittely kirjasto kirjoitettu Python-ohjelmointikielellä, suunniteltu erityisesti seurata ElementTree API spesifikaation mahdollisimman paljon.
Se voi ulottua ElementTree API paljastaa erityisiä toiminnallisuutta libxslt ja libxml2 kirjastoja, kuten Relax NG (Next-Generation), XPath, XML Schema, c14n, XSLT (Extensible Stylesheet Language), etc.Use LXML soittaa Python koodia XSLT stylesheetsDevelopers pystyy käyttämään LXML ohjelma soittaa Python koodia XSLT tyylitaulukkoja ja XPath ilmaisuja kautta laajennus toimintoja. Laaja valikoima oppitunnit ovat saatavilla hankkeen & rsquo; s kotisivu (katso linkki lopussa artikkeli).
Ohjelmisto on avoimen lähdekoodin suunnittelun ja yhdistää ominaisuus täydellisyyttä ja nopeus edellä mainittujen kirjastojen kanssa yksinkertaisuus Python & rsquo; s API (Application Programming Interface) .Getting alkoi lxmlIt on melko helppo asentaa LXML on GNU / Linux-jakelu käyttämällä lähdekoodit jaetaan Softoware ja hankkeen & rsquo; s virallisilla verkkosivuilla. Yksinkertaisesti lataa lähdekoodipaketista, tallenna se kotihakemistoosi pura se, avaa Terminal sovelluksen ja navigoida paikkaan erotetun arkistoja (esim cd /home/softoware/lxml-3.4.1).
Suorita & lsquo; tehdä & rsquo; komento kääntää ohjelman, joka kestää noin 1-2 minuuttia nykyaikaisen tietokoneen. Onnistuneen kokoelma, ajaa & lsquo; make install & rsquo; komento root tai & lsquo; sudo make install & rsquo; komennon etuoikeutettu käyttäjä asentaa LXML järjestelmän wide.Supports GNU / Linux ja Windows-käyttöjärjestelmän systemsThe ohjelmisto on virallisesti tuettu GNU / Linux ja Microsoft Windows-käyttöjärjestelmissä. Se on onnistuneesti testattu 32-bittinen ja 64-bittiset tietokoneet.
Mitä uutta strong> tässä julkaisussa:
- Ominaisuudet Lisätään:
- Uusi htmlfile HTML generaattori mukana vähitellen xmlfile serialization API. Patch Burak Arslan.
- Bugs kiinteä:
- lxml.sax.ElementTreeContentHandler ei sen ensimmäistä yliluokka.
Mitä uutta strong> versiossa 3.3.1:
- Bugs kiinteä:
- LP # 1014290: HTML asiakirjoja jäsentää parser.feed () ei löytänyt elementtejä aikana tag iterointia.
- LP # 1273709: Rakennus PyPy epäonnistui puuttuu tuki PyUnicode_Compare () ja PyByteArray _ * () in PyPy n C-API.
- LP # 1274413: Compilation in MSVC epäonnistui puuttuu & quot; stdint.h & quot; standardi header-tiedosto.
- LP # 1274118: iterparse () epäonnistui jäsentää BOM ennalta tiedostoja.
Mitä uutta strong> 3.0 Alpha 2:
- Ominaisuudet lisätty:
- .iter () menetelmä elementtien hyväksyy nyt tag väitteitä kuten & quot; {*} nimi & quot; etsiä osia tietyn paikallisen nimeä missään nimiavaruuden. Tämän lisäksi kaikki yhdistelmät jokerimerkkien nyt toimi odotetusti: & quot; {ns} nimi & quot ;, & quot; {} nimen & quot ;, & quot; {*} nimi & quot ;, & quot; {ns} * & quot ;, & quot; {} * & quot; ja & quot; {*} * & quot ;. Huomaa, että & quot; nimi & quot; vastaa & quot; {} nimen & quot ;, mutta & quot; * & quot; on & quot; {*} * & quot ;. Sama muutos koskee .getiterator (), .itersiblings (), .iterancestors (), .iterdescendants (), .iterchildren () ja .itertext () menetelmät, strip_attributes (), strip_elements () ja strip_tags () toiminnot sekä iterparse () luokka.
- C14N avulla täsmennetään inclusive etuliitteitä edistettävä huipputason aikana yksinoikeudella serialization.
- Bugs kiinteä:
- Syöttäminen pitkä Unicode jouset rehuun () jäsennintä liitäntä epäonnistui lukea koko merkkijono.
Mitä uutta strong> versiossa 2.3.5:
- Crash kun sulautuvan teksti solmut element.remove ( ).
- Crash Sax / kohde parseri raportoidessaan tyhjä DOCTYPE.
Mitä uutta strong> versiossa 2.3.4:
- Crash rakennettaessa nsmap (Element omaisuus) kanssa tyhjä namespace URI.
- Crash takia kisakuntoon kun virheitä (tai käyttäjän viestit) esiintyä kierteinen XSLT käsittelyn.
- XSLT kokoaminen voisi sivuuttaa kokoelma virheitä.
Mitä uutta strong> versiossa 2.3.2:
- Ominaisuudet lisätty:
- lxml.objectify.deannotate () on uusi boolean vaihtoehto cleanup_namespaces poistaa objektivoida nimiavaruus julistukset (ja yleensä siivota namespace ilmoitukset) poistamisen jälkeen tyyppi merkintöjä.
- lxml.objectify sai oman alaelementtiin () toimivat kopio etree.SubElement välttää muuten tarpeeton tuonti lxml.etree käyttäjän puolella.
- Bugs kiinteä:
- Kiinteät & quot; jälkeläinen & quot; vian cssselect toisen kerran (kun ensimmäinen fix LXML 2.3.1). Edellisen muutos aiheutti vakavan suorituskyky regressio XPath perustuu arviointiin käännetty ilmaisua. Huomaa, että tämä rikkoo käyttö joidenkin syntyy XPath ilmaisuja kuten XSLT sijainti polkuja, jotka aiemmin työskennellyt 2.3.1.
- Kiinteät jäsentämiseen joidenkin valitsimia cssselect. Tyhjämerkkiasetukset jälkeen combinators & quot; & Gt; & quot ;, & quot; + & quot; ja & quot; ~ & quot; nyt oikein huomiotta. Aiemmin on ollut jäsentää jälkeläinen combinator. Esimerkiksi & quot; div & gt; .foo & quot; oli jäsentää sama kuin & quot; div & gt; * .foo & quot; sijaan & quot; div & gt; .foo & quot;.
Mitä uutta strong> versiossa 2.3.1:
- Ominaisuudet lisätty:
- Uusi vaihtoehto kill_tags sisään lxml.html.clean poistaa tunnisteita ja niiden sisältö (eli niiden koko alipuusta).
- pi.get () ja pi.attrib käsittelystä ohjeita jäsentää pseudo-määritteet tekstisisällön käsittelyohjeita.
- lxml.get_include () palauttaa listan kuuluvat polut voidaan koota ulkoiseen C-koodia vastaan lxml.etree. Tämä vaatii nimenomaan pysyvästi linkitetyn LXML rakentaa kun koodi on koota vastaan täsmälleen sama otsikkotiedosto versioita LXML itse.
- Resolver.resolve_file () ottaa ylimääräinen vaihtoehto close_file joka määrittää, jos tiedosto (-kuten) kohde suljetaan lukemisen jälkeen vai ei. Oletuksena tiedosto on suljettu, koska käyttäjä ei odoteta pitää viittaus siihen.
- Bugs kiinteä:
- HTML puhdistus ei poista "data:" linkkejä.
- html5lib parseri integraatio käyttää nyt "virallinen" täytäntöönpanon html5lib itse, mikä saa sen toimimaan uudemmilla julkaisut kirjaston.
- lxml.sax, endElementNS () voisi väärin hylätä tavallinen tunnisteen nimi kun vastaava alusta tapahtuma päätellä sama tavallinen tunnisteen nimi olla oletuksena nimiavaruuden.
- Kun avoimen tiedoston kaltainen esine johdetaan jäsentää () tai iterparse (), parseri ei enää sulje se käytön jälkeen. Tämä palaa muutos LXML 2,3 jossa kaikki tiedostot olisivat kiinni. On käyttäjän vastuulla oikein lopettamisesta (-kuten) esine, myös virhetilanteissa.
- Assertion virhe lxml.html.cleaner kun heitetään huipputason elementtejä.
- lxml.cssselect, käytä XPath "// B" (lyhenne "/ jälkeläisten tai-itse :: solmu () / B") sijasta "/ jälkeläinen :: B varten css jälkeläinen valitsin ("B"). Tämä tekee muutaman reuna tapauksissa oltava valitsin käyttäytyminen WebKit ja Firefox, ja tekee enemmän css ilmaisuja voimassa sijainti polkuja (käytettäväksi xsl: template match).
- lxml.html, ei-valitut tunnisteet enää näy kerätään muodossa arvot.
- lisääminen / poistaminen arvot / pois useita valitse lomakekenttään oikein valitsee ne ja valinnat Poistaa niitä.
- Muut muutokset:
- Staattinen rakentaa voi määrittää ladata hakemistoon --download-dir vaihtoehto.
Mitä uutta strong> versiossa 2.3:
- Ominaisuudet lisätty:
- Kun etsit lapsille, lxml.objectify vie '{} tag "tarkoittavan tyhjä nimiavaruus, toisin kuin vanhemman nimiavaruuden.
- Bugs kiinteä:
- Kun olet valmis luet tiedostosta kaltainen esine, parseri tuo heti sen .close () menetelmä.
- Kun olet valmis jäsennys, iterparse () välittömästi sulkee syötetiedosto.
- Työ-ympäriinsä libxml2 vika, joka voi jättää HTML -jäsentimen toimimaton valtio jälkeen jäsentämiseen severly rikki asiakirja (vahvistettu libxml2 2.7.8).
- Marque tagi HTML uudelleenjärjestäminen koodi on oikein nimetty vierivän.
- Muut muutokset:
- Osa julkisten tehtävien Cython-tason C-API on tarkempi paluu tyyppejä.
Mitä uutta strong> versiossa 2.2.8 / 2.3 Beta 1:
- Crash uudemmissa libxml2 versioita liikkuvien osien väliset yhteydet, jotka oli attribuutteja korvattu XInclude solmut.
- XMLID () funktio puuttui valinnainen parseri ja base_url parametrit.
- Kun etsit jokerina tagien iterparse () katkesi Py3.
- lxml.html.open_in_browser () ei toimi Python 3 takia käytöstä os.tempnam. Nykyään siinä vapaaehtoinen "koodaus" parametri.
Vaatimukset :
- Python
Kommentteja ei löytynyt