2010-01-25 6 views
16

Gibt es eine Möglichkeit, XQuery unter Python auszuführen? (nicht mit anderen Worten, einen Parser selbst zu bauen).XQuery-Bibliothek unter Python

Ich habe eine Tonne von Legacy XQuery, die ich auf unser neues System portieren möchte, oder lieber möchte ich Port das Framework und nicht XQuery.

Daher: Gibt es eine Bibliothek, die es mir ermöglicht, XQuery unter Python auszuführen?

Antwort

13

Sort of ...

der W3C implementations list for XQuery Blick durch ist:

  1. Python bindings for Zorba
  2. Sedna ist eine kostenlose native XML-Datenbank mit API für Python.

Einige Python Beispiele mit Zorba, von 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 

kann es C-Implementierung in dieser Liste sein, die leicht zu Python gebunden werden kann. Hoffe, das hilft, war ich etwas überrascht, so wenige Implementierungen zu sehen. Obwohl XQuery nicht das am meisten gewünschte der XML-Tools ist, nehme ich an.

+1

Yeah Zobra scheint zu sein, was ich suchte, danke :) – Ooki

+0

Zorba arbeitet bei UBUNTU? https://github.com/zorba-processor/zorba/issues/10 –

0

Zorba 1.2 funktioniert von Python. Nach der Installation erhalten Sie einen Python-Ordner unter dem Zorba-Ordner. Hängen Sie es an sys.path an, mit dem Ordner zorba \ bin auch. Nach allen Manipulationen importieren "zorba_api" wird funktionieren!

0

Ich hatte Probleme wie Ted und versuchte, Antwort von Vadim zu verwenden. Allerdings hatte ich immer noch Probleme, zorba_api richtig zu laden, beschweren "ImportError DLL laden fehlgeschlagen" (nicht zu sagen, welche, mit% 1 als großer Spitzname).

Schließlich habe ich die Lösung:

Umwelt

  • WindowsXP
  • Python 2.6 auf c: \ Python26

Installations

  • Zorba 1.2 oder 1.4 Standardverzeichnis installiert
  • Pfad zum Zorba ist als erster Punkt in PATH
  • beiden Dateien von Zorba ist \ Python (zorba_api.py und _zorba_api.pyd) bewegte C:\Python26\LIB\site-packages

Als Ergebnis konnte ich laufen C:\Program Files\Zorba XQuery Processor 1.4.0\share\doc\zorba-1.4.0\python\examples\python_test.py aus einem beliebigen Ordner in meinem Computer, auch ohne die python-Linie, PATH Modifizieren

NB:

  • PATH-Problem kann zu lange Zeichenfolge dort verwandt sein.
  • Process Monitor war von guter Hilfe beim Suchen, die DLL nicht
1

Sie Jython den Python verwenden könnten Code auszuführen geladen werden -, dass Sie einigen Zugang zu den XQuery-Prozessoren aus der Java-Welt gibt. Zum Beispiel Saxon.