python_test.py
This is a simple example that demonstrate how to use the Zorba XQuery Engine to create, compile, and execute queries.
import sys
sys.path.insert(0, '/home/jenkins/.jenkins/ubuntu-remote-queue/jenkins-BuildZorbaUbuntu-462/source/zorba/build/swig/python')
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
def example4(zorba):
try:
xquery = zorba.compileQuery("for $i in (1,2,")
print xquery.execute()
except RuntimeError, e:
print e
return
def example5(zorba):
dataManager = zorba.getXmlDataManager()
docIter = dataManager.parseXML("<books><book>Book 1</book><book>Book 2</book></books>")
docIter.open();
doc = zorba_api.Item_createEmptyItem()
docIter.next(doc)
docIter.close()
docIter.destroy()
docManager = dataManager.getDocumentManager()
docManager.put("books.xml", doc)
xquery = zorba.compileQuery("doc('books.xml')//book")
print xquery.execute()
docManager.remove("books.xml");
return
def example6(zorba):
dataManager = zorba.getXmlDataManager()
docIter = dataManager.parseXML("<books><book>Book 1</book><book>Book 2</book></books>")
docIter.open();
doc = zorba_api.Item_createEmptyItem()
docIter.next(doc)
docIter.close()
docIter.destroy()
xquery = zorba.compileQuery(".")
dynCtx = xquery.getDynamicContext();
dynCtx.setContextItem(doc);
print xquery.execute()
return
def example7(zorba, file):
print 'Executing: '+file+'.xq'
f = open(file+'.xq', 'r')
lines = f.read()
f.close()
xquery = zorba.compileQuery(lines)
result = xquery.execute()
print result
f = open(file + '_result.xml', 'w')
f.write(result)
f.close()
return
def example8(zorba):
try:
xquery = zorba.compileQuery('(xs:QName (" fn:a ") eq QName ("http://www.w3.org/2005/xpath-functions", "pre:a")) and (xs:QName (" x ") eq xs:QName ("x"))')
print xquery.execute()
except RuntimeError, e:
print e
return
store = zorba_api.InMemoryStore_getInstance()
zorba = zorba_api.Zorba_getInstance(store)
print "Example1:"
example1(zorba)
print ""
print "Example2:"
example2(zorba)
print ""
print "Example3:"
example3(zorba)
print ""
print "Example4:"
example4(zorba)
print ""
print "Example5:"
example5(zorba)
print ""
print "Example6:"
example6(zorba)
print ""
print "Example7:"
a = range(10)
for x in a:
example7(zorba, 'test'+str(x))
print ""
print "Example8:"
example8(zorba)
print ""
zorba.shutdown()
zorba_api.InMemoryStore_shutdown(store)