2010-01-25 7 views
16

Existe-t-il un moyen d'exécuter XQuery sous python? (ne pas commencer à construire un analyseur vous-même en d'autres termes).Bibliothèque XQuery sous Python

J'ai une tonne de XQuery hérité que je veux porter sur notre nouveau système, ou plutôt je veux porter le framework et non XQuery.

Par conséquent: Y at-il une bibliothèque qui me permet d'exécuter XQuery sous Python?

Répondre

13

Trier de ...

En regardant à travers le W3C implementations list for XQuery il y a:

  1. Python bindings for Zorba
  2. Sedna est une base de données XML native libre avec l'API pour Python.

Quelques exemples Python avec Zorba, de 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 

Il peut y avoir la mise en œuvre de C dans cette liste qui peut facilement être lié à Python. J'espère que cela aide, j'ai été quelque peu surpris de voir si peu d'implémentations. Bien que, XQuery n'est pas le plus désiré des outils XML je suppose.

+1

Yeah Zobra semble être ce que je cherchais, merci :) – Ooki

+0

Zorba travaille chez UBUNTU? https://github.com/zorba-processor/zorba/issues/10 –

0

Zorba 1.2 fonctionne à partir de python. Après l'installation, vous obtiendrez un dossier python sous le dossier zorba. Ajoutez-le à sys.path, avec le dossier zorba \ bin également. Après toutes les manipulations, l'importation "zorba_api" fonctionnera!

0

J'ai eu des problèmes comme Ted et j'ai essayé d'utiliser la réponse de vadim. Cependant, j'avais encore des problèmes pour charger correctement zorba_api, se plaignant de "chargement DLL ImportError a échoué" (ne dit pas lequel, en utilisant% 1 comme grand surnom).

Enfin, je suis la solution:

Environnement

  • WindowsXP
  • Python 2.6 installé à c: \ Python26

Installation

  • Zorba 1,2 ou 1.4 installé à emplacement standard
  • Path to bin Zorba comme premier élément PATH
  • les deux fichiers de bin Zorba \ python (zorba_api.py et _zorba_api.pyd) déplacé à C:\Python26\LIB\site-packages

En conséquence, j'ai pu exécuter C:\Program Files\Zorba XQuery Processor 1.4.0\share\doc\zorba-1.4.0\python\examples\python_test.py partir d'un dossier dans mon ordinateur, même sans la ligne de python, modifier PATH

NB:

  • Le problème PATH peut être lié à une chaîne trop longue.
  • Process Monitor était de bonne aide pour trouver, quelle DLL ne peut pas être chargé
1

Vous pouvez utiliser Jython pour exécuter le code Python - qui vous donne accès à certains des processeurs XQuery du monde Java. Par exemple Saxon.