2008-09-26 10 views
19

¿Hay una biblioteca XSLT que sea Python puro?Biblioteca Python XSLT

Instalar libxml2 + libxslt o cualquier biblioteca C similar es un problema en algunas de las plataformas que necesito admitir.

Realmente solo necesito soporte básico para XSLT, y la velocidad no es un problema importante.

Respuesta

9

Desafortunadamente, no hay procesadores XSLT puros-python en este momento. Si necesita algo que sea más independiente de la plataforma, puede usar un procesador XSLT basado en Java como Saxon. 4Suite está trabajando en un analizador XPath de python puro, pero no parece que un procesador XSLT puro estará fuera por un tiempo. Quizás sería mejor usar algunas de las capacidades funcionales de Python para tratar de aproximar la hoja de estilo existente o analizar la viabilidad de usar Java en su lugar.

1

¿Has mirado 4suite?

+0

Partes de 4suite están en C, no estoy seguro si eso importa. –

+0

Sí, eso sí importa. Estoy buscando una implementación pura de Python. No quiero/no puedo compilar (¡mucho menos instalar!) C en algunas plataformas. –

1

Si sólo necesita soporte básico y el código XML no es demasiado loco, considere la eliminación del elemento XSLT de la ecuación y simplemente usando un analizador DOM/SAX.

Aquí hay algo de información de la PythonInfo Wiki:

[DOM] absorbe todo un archivo XML, lo mantiene en su memoria y le permite trabajar con él. Sax, por otro lado, emite eventos mientras avanza paso a paso por el archivo .

¿Qué opinas?

+0

Buena idea, pero en este caso tengo XSLTs que quiero usar en plataformas donde no puedo compilar ningún código ni instalar bibliotecas. –

6

No creo que puedas hacerlo en cpython: no hay implementaciones de python XSLT puro.

Pero trivialmente puede hacerlo en jython, utilizando las API integradas XSLT de la JVM. Escribí una publicación de blog para el caso específico de hacerlo en Google App Engine, pero el código proporcionado debería funcionar bajo jython en cualquier circunstancia.

de transformación con las XSLT en Google App Engine y jython

http://jython.xhaus.com/transforming-with-xslt-on-google-appengine-and-jython/

HTH,

Alan.

1

También hay http://lxml.de/

"lxml es la más rica en características y fácil de usar biblioteca para el procesamiento de XML y HTML en el lenguaje Python."

+1

Hmm. Considerar las afirmaciones de marketing de "las más completas y fáciles de usar" parece un poco demasiado (a menos que haya realizado una investigación exhaustiva de las opciones y haya llegado a esta conclusión por su cuenta). – Rob

+0

lxml es, estoy bastante seguro, solo otro enlace de Python alrededor de las mismas bibliotecas de C que intentamos usar aquí: "[El kit de herramientas lxml XML es un enlace Pythonic para las bibliotecas C libxml2 y libxslt.] (Http : //lxml.de/index.html). " –

+0

Además, para citar lml [página de instalación] (http://lxml.de/installation.html): "A menos que esté utilizando una distribución binaria estática (por ejemplo, desde un instalador binario de Windows), lxml requiere la instalación de libxml2 y libxslt ... " –