2010-01-25 10 views
16

Czy istnieje jakiś sposób uruchomienia XQuery pod pytonem? (nie rozpoczynajĘ ... c samodzielnie tworzenia parsera).Biblioteka XQuery pod Pythonem

Mam wiele starych XQuery, które chcę przenieść do naszego nowego systemu, lub raczej chcę, aby port ram, a nie XQuery.

Dlatego: Czy istnieje biblioteka, która pozwala mi uruchomić XQuery pod pytonem?

Odpowiedz

13

Rodzaj ...

Patrząc przez W3C implementations list for XQuery znajduje się:

  1. Python bindings for Zorba
  2. Sedna to darmowa natywna baza danych XML z API dla Python.

Kilka przykładów Pythona w Zorba, z 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 

Nie może być wdrożenie C w tym wykazie, który może być łatwo związane z Pythonem. Mam nadzieję, że to pomaga, byłem nieco zaskoczony, że tak mało wdrożeń. Chociaż XQuery nie jest najbardziej pożądanym narzędziem XML, jak sądzę.

+1

Tak, Zobra wydaje się być tym, czego szukałem, dzięki :) – Ooki

+0

Zorba pracuje w UBUNTU? https://github.com/zorba-processor/zorba/issues/10 –

0

Zorba 1.2 działa z Pythona. Po instalacji otrzymasz folder Pythona w folderze zorba. Dołącz to do sys.path, także z folderem zorba \ bin. Po wszystkich manipulacjach import "zorba_api" zadziała!

0

Miałem problemy takie jak Ted i próbowałem użyć odpowiedzi od vadima. Jednak nadal miałem problemy z prawidłowym ładowaniem zorba_api, narzekając, że "ładowanie biblioteki DLL nie powiodło się" (nie informując o tym, używając% 1 jako świetnego pseudonimu).

Wreszcie dostaje roztwór:

środowiska

  • WindowsXP
  • Pythona 2,6 zainstalowany C: \ Python26

Instalacja

  • Zorba 1.2 lub 1.4 zainstalowane na standardowej lokalizacji
  • ścieżka do kosza Zorba jako pierwsza pozycja w PATH
  • oba pliki z Zorba bin \ python (zorba_api.py i _zorba_api.pyd) przeniósł się do C:\Python26\LIB\site-packages

W wyniku tego udało mi się C:\Program Files\Zorba XQuery Processor 1.4.0\share\doc\zorba-1.4.0\python\examples\python_test.py uruchomić z dowolnego folderu w komputerze, nawet bez linii Pythona, modyfikując ścieżkę

NB:

  • Problem PATH może być związany ze zbyt długim ciągiem znaków.
  • Process Monitor było dobrej stwierdzenia pomocy, która DLL nie można załadować
1

Można użyć Jython do uruchomienia kodu Pythona - który daje dostęp do niektórych procesorów XQuery ze świata Java. Na przykład Saxon.