lxml es un módulo de Python sofisticado, poderoso, libre y único que une las librerías libxml2 y libxslt, permitiendo a los desarrolladores de Python para trabajar tanto con archivos XML y HTML privilegiada su librarylxml procesamiento XML Python code.An es un XML (Extensible Markup Language ) biblioteca de procesamiento de escrito en el lenguaje de programación Python, diseñado específicamente para seguir la especificación API elementtree tanto como sea posible.
Se puede ampliar la API elementtree para exponer la funcionalidad específica de las libxslt y libxml2 bibliotecas, como Relax NG (Next-Generation), XPath, XML Schema, C14N, XSLT (Extensible Stylesheet Language), etc.Use lxml llamar a código Python desde stylesheetsDevelopers XSLT podrán utilizar el programa lxml llamar código Python de hojas de estilo XSLT y expresiones XPath a través de funciones de extensión. Una amplia gama de tutoriales están disponibles en el proyecto y rsquo; s página de inicio (ver el enlace al final del artículo).
El software es de código abierto por diseño y combina el carácter completo de características y velocidad de las bibliotecas mencionadas con la simplicidad de Python y rsquo; s de la API (Application Programming Interface) .Getting comenzó con lxmlIt es muy fácil de instalar lxml en una distribución GNU / Linux a través de la Archivo fuente distribuido en Softoware y el proyecto y rsquo; s web oficial. Basta con descargar el paquete fuente, guárdelo en su directorio de inicio, descomprimirlo, abra la aplicación Terminal y vaya a la ubicación de los archivos comprimidos extraídos (por ejemplo cd /home/softoware/lxml-3.4.1).
Ejecute el y lsquo; hacer y rsquo; comando para compilar el programa, que debería tener unos 1-2 minutos en un equipo moderno. Después de una compilación exitosa, ejecute el y lsquo; make install y rsquo; comando como root o de & lsquo; sudo make install y rsquo; comando como un usuario con privilegios para instalar wide.Supports sistema LXML GNU / Linux y Microsoft Windows operativo SystemsThe software es oficialmente compatible con los sistemas operativos GNU / Linux y Microsoft Windows. Se ha probado con éxito en equipos de 32 bits y 64 bits
¿Qué es nuevo en esta versión:.
- Características añadido:
- Nuevo generador HTML htmlfile para acompañar el incremento API serialización xmlfile. Patch por Burak Arslan.
- Bugs fijo:
- lxml.sax.ElementTreeContentHandler no inicializar su superclase.
¿Qué hay de nuevo en la versión 3.3.1:
- Bugs fijo:
- PT # 1014290: documentos HTML analizados con parser.feed () no logró encontrar elementos durante etiqueta iteración .
- PT # 1273709: Edificio en PyPy fracasó debido a la falta de apoyo a PyUnicode_Compare () y PyByteArray _ * () en C-API de PyPy .
- PT # 1274413: Recopilación en MSVC fracasó debido a la falta de & quot; stdint.h & quot; archivo de cabecera estándar.
- PT # 1274118: iterparse () no pudo analizar BOM prefijo archivos .
¿Qué hay de nuevo en la versión 3.0 Alpha 2:
- características añadido:
- El método .iter () de los elementos ahora acepta argumentos de etiqueta como & quot; {*} nombre & quot; para buscar elementos con un nombre local dado en cualquier espacio de nombres. Con esta adición, todas las combinaciones de comodines ahora funcionan como se esperaba: & quot; {ns} nombre & quot ;, & quot; {} nombre & quot ;, & quot; {*} nombre & quot ;, & quot; {ns} * & quot ;, & quot; {} * & quot; y & quot; {*} * & quot ;. Tenga en cuenta que & quot; nombre & quot; es equivalente a & quot; {} nombre & quot ;, pero & quot; * & quot; es & quot; {*} * & quot ;. El mismo cambio se aplica a la .getiterator (), (), .itersiblings .iterancestors (), (), .iterdescendants .iterchildren () y .itertext () métodos; los strip_attributes (), () y strip_elements strip_tags () funciones así como la (clase iterparse).
- C14N permite especificar los prefijos inclusivos para ser promovido al más alto nivel durante la serialización exclusiva.
- Bugs fijo:
- Al pasar largas cadenas Unicode en la alimentación () interfaz de programa de análisis no ha podido leer la totalidad de la cadena.
¿Qué hay de nuevo en la versión 2.3.5:
- Crash cuando la fusión de los nodos de texto en element.remove ( ).
- Crash en analizador SAX / target al informar DOCTYPE vacía.
¿Qué hay de nuevo en la versión 2.3.4:
- Crash en la construcción de un nsmap (propiedad Element) con URI de espacio de nombres vacío.
- Crash debido a la condición de carrera cuando se producen errores (o mensajes de usuarios) durante el procesamiento XSLT roscado.
- hojas de estilo XSLT compilación podría ignorar los errores de compilación.
¿Qué hay de nuevo en la versión 2.3.2:
- características añadido:
- lxml.objectify.deannotate () tiene un nuevo cleanup_namespaces opción booleana para eliminar las declaraciones de espacio de nombres objetivar (y generalmente limpiar las declaraciones de espacio) después de quitar las anotaciones de tipos.
- lxml.objectify ganó su función propia subelemento () como una copia de etree.SubElement para evitar una importación de otro modo redundante de lxml.etree en el lado del usuario.
- Bugs fijo:
- Se ha solucionado el & quot; descendiente & quot; bug en cssselect por segunda vez (después de un primer punto de referencia en lxml 2.3.1). El cambio anterior se tradujo en una disminución de desempeño serio para la evaluación basada en XPath de la expresión traducida. Tenga en cuenta que esto rompe el uso de algunas de las expresiones XPath generadas como vías de ubicación XSLT que trabajaron anteriormente en 2.3.1.
- análisis fijo de algunos selectores en cssselect. El espacio en blanco después de combinadores & quot; & Gt; & quot ;, & quot; + & quot; y & quot; ~ & quot; ahora se ignora correctamente. Anteriormente se ha analizado como un combinador descendiente. Por ejemplo, & quot; div & gt; .foo & quot; fue analizado el mismo que & quot; div & gt; * .foo & quot; en lugar de & quot; div & gt; .foo & quot;.
¿Qué hay de nuevo en la versión 2.3.1:
- características añadido:
- Nueva opción kill_tags en lxml.html.clean para quitar etiquetas específicas y su contenido (es decir, la totalidad de su subárbol).
- pi.get () y pi.attrib en las instrucciones de procesamiento personalizados para analizar pseudo-atributos del contenido de texto de instrucciones de procesamiento.
- lxml.get_include () devuelve una lista de incluir rutas que se pueden utilizar para compilar código C externo contra lxml.etree. Esto se requiere específicamente para lxml enlazados estáticamente construye cuando el código debe compilar contra las mismas versiones exactas de archivos de cabecera como lxml sí mismo.
- Resolver.resolve_file () toma un close_file opción adicional que configura si el (similares a) objeto de archivo se cerrará después de leer o no. Por defecto, el archivo estará cerrado, ya que no se espera que el usuario pueda mantener una referencia a él.
- Bugs fijo:
- Limpieza HTML no quitó 'datos:'. Enlaces
- La integración analizador html5lib ahora utiliza la aplicación "oficial" en html5lib en sí, que hace que funcione con las versiones más recientes de la biblioteca.
- En lxml.sax, endElementNS () podrían rechazar incorrectamente un nombre de etiqueta llano cuando el evento de inicio correspondiente inferir el mismo nombre de la etiqueta llano para estar en el espacio de nombres predeterminado.
- Cuando un objeto de tipo fichero abierto se pasa a parse () o iterparse (), el analizador no cerrará después de su uso. Esto revierte un cambio en lxml 2.3 donde todos los archivos estarían cerradas. Es responsabilidad de los usuarios para cerrar correctamente la (similares a) objeto de archivo, también en los casos de error.
- error de aserción en lxml.html.cleaner al descartar elementos de nivel superior.
- En lxml.cssselect, utilice el xpath 'A // B' (abreviatura de 'A / nodo descendiente-or-self :: () / B') en vez de 'A / descendiente :: B' para el css selector de descendiente ('A B'). Esto hace que algunos casos de borde para ser coherente con el comportamiento de selección en WebKit y Firefox, y hace más expresiones css vías de ubicación válidos (para su uso en xsl: template match).
- En lxml.html, las etiquetas no seleccionados ya no aparece en los valores de los formularios recogidos.
- Agregar / eliminar valores a / de un campo múltiple forma de selección de los selecciona y deselecciona ellos correctamente.
- Otros cambios:
- estático construye puede especificar el directorio de descarga con la opción---download dir.
¿Qué hay de nuevo en la versión 2.3:
- características añadido:
- Cuando se busca para los niños, lxml.objectify toma '{} tag' en el sentido de un espacio de nombres vacío, en comparación con el espacio de nombres de los padres.
- Bugs fijo:
- Cuando terminó de leer desde un objeto de fichero, el analizador llama inmediatamente su método .close ().
- Cuando termine el análisis, iterparse () inmediatamente se cierra el archivo de entrada.
- trabajo en torno a bug libxml2 que puede dejar el analizador de HTML en un estado no funcional después de analizar un documento roto severamente (fijo en libxml2 2.7.8).
- etiqueta marca en HTML código de limpieza se llama correctamente marquesina.
- Otros cambios:
- Algunas funciones públicas en el C-API de nivel Cython tienen tipos de retorno más explícitas.
¿Qué hay de nuevo en la versión 2.2.8 / 2.3 Beta 1:
- Crash en las últimas versiones libxml2 cuando elementos entre los documentos que tenían atributos en nodos XInclude reemplazados en movimiento.
- función XMLID () faltaba los parámetros del analizador y base_url opcionales.
- Buscar etiquetas comodín en iterparse () se rompió en el AP3.
- lxml.html.open_in_browser () no funcionaba en Python 3 debido a la utilización de os.tempnam. Ahora toma un parámetro opcional "codificación".
Requisitos :
- Python
Comentarios que no se encuentran