python - example - xquery function declaration
Biblioteca XQuery bajo Python (4)
¿Hay alguna manera de ejecutar XQuery bajo python? (no está empezando a construir un analizador usted mismo en otras palabras).
Tengo un montón de XQuery heredado que quiero trasladar a nuestro nuevo sistema, o más bien quiero trasladar el marco y no XQuery.
Por lo tanto: ¿Hay alguna biblioteca que me permita ejecutar XQuery bajo python?
Tuve problemas como Ted y traté de usar la respuesta de vadim. Sin embargo, todavía tenía problemas para cargar zorba_api correctamente, quejándose de "Falló la carga de DLL ImportError" (no se indica cuál, usando% 1 como gran apodo).
Finalmente, tengo la solución:
Ambiente
- Windows XP
- Python 2.6 instalado en c: / Python26
Instalación
- Zorba 1.2 o 1.4 instalado en una ubicación estándar
- Ruta a Zorba bin como primer elemento en
PATH
- ambos archivos de Zorba bin / python (
zorba_api.py
y_zorba_api.pyd
) se movieron aC:/Python26/LIB/site-packages
Como resultado, pude ejecutar C:/Program Files/Zorba XQuery Processor 1.4.0/share/doc/zorba-1.4.0/python/examples/python_test.py
desde cualquier carpeta en mi computadora, incluso sin la línea python , modificando el PATH
NÓTESE BIEN:
- El problema PATH podría estar relacionado con una cadena demasiado larga allí.
- Process Monitor fue de gran ayuda para encontrar qué DLL no se puede cargar
Zorba 1.2 trabaja desde python. Después de la instalación obtendrá una carpeta de python en la carpeta zorba. Agréguelo a sys.path, con la carpeta zorba / bin también. Después de todas las manipulaciones, la importación "zorba_api" funcionará!
Tipo de ...
Mirando a través de la lista de implementaciones de W3C para XQuery hay:
- Fijaciones de pitón para zorba
- Sedna es una base de datos XML nativa gratuita con API para Python .
Unos cuantos ejemplos de Python con Zorba, desde here
import sys
import zorba_api
def example1(zorba):
xquery = zorba.compileQuery("1+2")
print xquery.printPlanAsXML()
print xquery.execute()
return
def example2(zorba):
xquery = zorba.compileQuery("(1,2,3,4,5)")
iter = xquery.iterator()
iter.open()
item = zorba_api.Item_createEmptyItem()
while iter.next(item):
print item.getStringValue()
iter.close()
iter.destroy()
return
def example3(zorba):
try:
xquery = zorba.compileQuery("1 div 0")
print xquery.execute()
except RuntimeError, e:
print e
return
Puede haber una implementación de C en esa lista que puede vincularse fácilmente a Python. Espero que esto ayude, me sorprendió un poco ver tan pocas implementaciones. Aunque, XQuery no es la herramienta XML más deseada, supongo.