2010-01-25 15 views
16

¿Existe alguna forma de ejecutar XQuery en python? (No comenzando a construir un analizador usted mismo en otras palabras).Biblioteca de XQuery en Python

Recibí un montón de XQuery heredado que quiero transferir a nuestro nuevo sistema, o más bien quiero portar el marco y no XQuery.

Por lo tanto: ¿Hay alguna biblioteca que me permita ejecutar XQuery en python?

Respuesta

13

Una especie de ...

Mirando a través del W3C implementations list for XQuery existe:

  1. Python bindings for Zorba
  2. Sedna es una base de datos XML nativo gratuita con API para Python.

Algunos 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 aplicación C en esa lista que puede ser fácilmente vinculado 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.

+1

Sí Zobra parece ser lo que estaba buscando, gracias :) – Ooki

+0

Zorba está trabajando en UBUNTU? https://github.com/zorba-processor/zorba/issues/10 –

0

Zorba 1.2 funciona desde python. Después de la instalación, obtendrá una carpeta python en la carpeta zorba. Añádalo a sys.path, con la carpeta zorba \ bin también. ¡Después de todas las manipulaciones, importar "zorba_api" funcionará!

0

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ándome de que "Falló la carga de DLL de ImportError" (sin decir cuál, usando% 1 como gran apodo).

último, tengo la solución:

Medio Ambiente

  • Windows XP
  • Python 2.6 instalado en c: \ Python26

instalación

  • Zorba 1.2 o 1.4 instalado para ubicación estándar
  • Camino a Zorba bin como primer elemento de PATH
  • ambos archivos de Zorba bin \ pitón (zorba_api.py y _zorba_api.pyd) se trasladaron a C:\Python26\LIB\site-packages

Como resultado de ello, pude C:\Program Files\Zorba XQuery Processor 1.4.0\share\doc\zorba-1.4.0\python\examples\python_test.py ejecutar desde cualquier carpeta en mi ordenador, incluso sin la línea pitón, modificando PATH

NB:

  • El problema PATH puede estar relacionado con una cadena demasiado larga.
  • Process Monitor era de buena ayuda hallazgo, que DLL no se puede cargar
1

usted podría utilizar Jython para ejecutar el código Python - que le da acceso a algunos de los procesadores XQuery desde el mundo Java. Por ejemplo Saxon.