lxml е сложен, мощен, свободен и уникален Python модул, който се свързва libxml2 и libxslt библиотеки, позволявайки Python разработчиците да работят както с XML и HTML файлове с вътрешна им Python code.An XML обработка librarylxml е XML (Extensible Markup Language ) обработка библиотека написана на езика Python програмиране, специално предназначен да следи спецификация на API ElementTree колкото е възможно повече.
Тя може да се разшири API ElementTree да изложи специфична функционалност на libxslt и libxml2 библиотеки, като Relax NG (Next Generation-), XPath, XML Schema, c14n, XSLT (Extensible Stylesheet Language), etc.Use lxml да се обадя Python код от XSLT stylesheetsDevelopers ще могат да използват програмата lxml да се обадя Python код от XSLT стилови и XPath изрази чрез удължители функции. Широка гама от уроци са на разположение на проекта & rsquo; ите начална страница (виж линка в края на статията).
Софтуерът е с отворен код, като дизайн и съчетава функция пълнотата и скоростта на гореспоменатите библиотеки с простотата на Python & rsquo; ите API (Application Programming Interface) .Getting започна с lxmlIt е доста лесен за инсталиране lxml за дистрибуция на GNU / Linux с помощта на изходен код, разпространяван на Softoware и rsquo на проекта &; ите официалния сайт. Просто изтеглите пакета с изходния код, да го запишете на вашата домашна директория, я разопаковате, отворете Terminal приложението и да стигнете до местоположението на добитите файл (например CD /home/softoware/lxml-3.4.1).
Изпълнете & lsquo; направи & rsquo; заповядвам да компилирате програмата, която трябва да отнеме около 1-2 минути на съвременния компютър. След успешна компилация, стартирайте & lsquo; направи инсталирате & rsquo; команда като корен или на & lsquo; Sudo да инсталирате & rsquo; команда като привилегирован потребител, за да инсталирате lxml wide.Supports система GNU / Linux и Microsoft Windows операционна systemsThe софтуер е официално подкрепен от GNU / Linux и Microsoft Windows операционни системи. Тя е била успешно тествана на 32-битови и 64-битови компютри
<силни> Какво е новото в тази версия:.
- Характеристики добавя:
- New htmlfile HTML генератор да придружава частичното xmlfile сериализация API. Patch от Бурак Арслан.
- Bugs фиксиран:
- lxml.sax.ElementTreeContentHandler не инициализира своето суперкласа.
Какво ново във версия 3.3.1:
- Bugs фиксиран:
- LP # 1014290: HTML документи анализирани с parser.feed () не успя да намери елементи по време маркер итерация .
- LP # 1273709: Сграда в PyPy се провали поради липса на подкрепа за PyUnicode_Compare () и PyByteArray _ * () в C-API PyPy на .
- LP # 1274413: Compilation в MSVC провали поради липса на & quot; stdint.h & quot; стандартна заглавния файл.
- LP # 1274118: iterparse () не успя да направи разбор BOM представка файлове .
Какво ново във версия 3.0 Alpha 2:
- Характеристики на добавяне:
- .iter () метода на елементите на предприятието приема тагове аргументи като & quot; {*} име & quot; за да търсите елементи с дадена местна име във всеки пространство от имена. С това допълнение, всички комбинации на заместващи символи сега работят, както се очаква: & quot; {НЧ} име & quot ;, & quot; {} име & quot ;, & quot; {*} име & quot ;, & quot; {НЧ} * & 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 позволява определяне на включените префиксите да бъде повишен до най-високо ниво по време на изключителната сериализация.
- Bugs фиксиран:
- подава дълъг Unicode стрингове във фуражите () анализатор интерфейс не успя да прочетете целия низ.
Какво ново във версия 2.3.5:
- Crash при сливане текстови възли в element.remove ( ).
- Crash в саксофон / целева анализатор, когато докладват празна DOCTYPE.
Какво ново във версия 2.3.4:
- Crash при изграждането на един nsmap (Element имот) с празно пространство от имена URI адреси.
- Crash поради състояние състезание при възникване на грешки (или потребителски съобщения) по време на резба обработка XSLT.
- XSLT стилове компилация можеше да пренебрегне компилация грешки.
Какво ново във версия 2.3.2:
- Характеристики на добавяне:
- lxml.objectify.deannotate () има нов булев опционни cleanup_namespaces за премахване обективира декларациите пространството от имена (и като цяло да почистват декларациите пространството от имена) След отстраняване на анотациите тип.
- lxml.objectify получава своята функция собствена поделемент () и копие от etree.SubElement да избегне по друг начин съкратени внос на lxml.etree от страна на потребителя.
- Bugs фиксиран:
- Фиксирана & quot; потомък & quot; бъг в cssselect втори път (след първата корекция в lxml 2.3.1). Предишната промяна доведе до сериозна регресия производителност за XPath основава на оценката на преведените израз. Имайте предвид, че това нарушава ползването на някои от генерираните XPath изрази като XSLT пътеки за местоположение, които преди това са работили в 2.3.1.
- Фиксирана разбор на някои селектори в cssselect. Празното пространство след комбинатори & quot; & GT; & quot ;, & quot; + & quot; и & quot; ~ & quot; сега е правилно игнорирани. Преди това е бил разпознаване като потомък Combinator. Например, & quot; Разделение & GT; .foo & quot; се прави разбор на същите, както и quot; Разделение & GT; * .foo & quot; вместо & quot; Разделение & GT; .foo & quot;.
Какво ново във версия 2.3.1:
- Характеристики на добавяне:
- New опция kill_tags в lxml.html.clean да премахне определени тагове и тяхното съдържание (т.е. тяхната цялата поддърво).
- pi.get () и pi.attrib на инструкции за обработка да прави разбор псевдо-атрибути от съдържанието на текста на инструкции за обработка.
- lxml.get_include () връща списък на включва пътища, които могат да бъдат използвани за съставяне на външен код C срещу lxml.etree. Това се налага конкретно за статично свързан lxml изгражда, когато код трябва да се съберат против точно същите заглавна версии на файловете, като lxml себе си.
- Resolver.resolve_file () прави допълнителна опция close_file че конфигурира ако файл (-подобна) обектът ще бъде затворен след като е прочел или не. По подразбиране, файлът ще бъде затворен, тъй като потребителят не се очаква да се запази позоваване на него.
- Bugs фиксиран:
- HTML почистване не премахва "данни:". Връзки
- интеграцията на html5lib анализатор сега използва "официална" изпълнението по себе html5lib, което я прави да работи с по-нови версии на библиотеката.
- В lxml.sax, endElementNS () може да неправилно отхвърлят обикновена име на етикет, когато съответния старт случай заключи същото обикновена името таг да бъде в пространството на имената по подразбиране.
- Когато отворен файл-подобен обект се предава в разбор () или iterparse (), парсера вече не тясно го след употреба ще. Това връща промяна в lxml 2.3 всички файлове, където ще бъде затворен. Това е най-потребители отговорността да се затваря добре на файл (-подобна) обекта, и в случаите на грешки.
- Assertion грешка в lxml.html.cleaner връщащите елементи най-високо ниво.
- В lxml.cssselect, използвайте XPath "A // B" (съкратено от "A / потомък-или-самостоятелно :: възел () / B"), вместо "A / потомък :: B" за СГО потомък селектор ("A B"). Това прави няколко случая ръба да бъде в съответствие с поведението избора на WebKit и Firefox, и прави повече CSS изрази валидни пътеки местоположение (за използване в XSL: Среща шаблон).
- В lxml.html, които не са избрани тагове вече не се показват в събраните стойности форма.
- Добавяне / премахване на стойности към / от множествена изберете поле на формуляр правилно ги избира и да ги unselects.
- Други промени:
- Static изгражда да посочите директория за сваляне с опцията --download-реж.
Какво ново във версия 2.3:
- Характеристики на добавяне:
- Когато търсите деца, lxml.objectify отнема "{} таг" в смисъл на празен пространство от имена, за разлика от майка пространство от имена.
- Bugs фиксиран:
- Когато приключите четене от файл-подобен обект, парсера веднага призовава своя .close (метод).
- Когато приключите разбор, iterparse () веднага затваря входния файл.
- Work-наоколо за libxml2 грешка, която може да напусне HTML парсера в не-функционално състояние след разбор на жестоко счупен документ (фиксиран в libxml2 2.7.8).
- Marque таг в HTML почистване код е правилно назован палатка.
- Други промени:
- Някои публични функции в 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
Коментари не е намерена