Python下的XQuery库[关闭]
Posted
技术标签:
【中文标题】Python下的XQuery库[关闭]【英文标题】:XQuery library under Python [closed] 【发布时间】:2011-01-09 04:06:53 【问题描述】:是否有任何现有的方法可以在 python 下运行 XQuery? (换句话说,不是开始自己构建解析器)。
我有大量的遗留 XQuery 想要移植到我们的新系统,或者更确切地说,我想要 移植框架而不是 XQuery。
因此:是否有任何库允许我在 python 下运行 XQuery?
【问题讨论】:
【参考方案1】:有点……
查看W3C implementations list for XQuery有:
-
Python bindings for Zorba
Sedna 是一个免费的原生 XML 数据库,带有用于 Python 的 API。
一些使用 Zorba 的 Python 示例,来自 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
该列表中可能有可以轻松绑定到 Python 的 C 实现。希望这会有所帮助,看到这么少的实现让我有些惊讶。虽然,我认为 XQuery 并不是 XML 工具中最需要的。
【讨论】:
是的,Zobra 似乎就是我要找的东西,谢谢 :) Zorba 在 UBUNTU 工作? github.com/zorba-processor/zorba/issues/10【参考方案2】:您可以使用Jython 来运行Python 代码——这使您可以访问Java 世界中的一些XQuery 处理器。例如Saxon。
【讨论】:
【参考方案3】:Zorba 1.2 在 python 中工作。安装后,您将在 zorba 文件夹下获得一个 python 文件夹。将它附加到 sys.path,还带有 zorba\bin 文件夹。在所有操作之后 import "zorba_api" 将起作用!
【讨论】:
【参考方案4】:我遇到了像 Ted 这样的问题,并尝试使用 vadim 的回答。 但是,我仍然无法正确加载 zorba_api,抱怨“ImportError DLL load failed”(不知道是哪一个,使用 %1 作为好昵称)。
终于,我得到了解决方案:
环境
WindowsXP Python 2.6 安装在 c:\Python26安装
Zorba 1.2 或 1.4 安装到标准位置 Zorba bin 的路径作为PATH
中的第一个项目
来自 Zorba bin\python 的两个文件(zorba_api.py
和 _zorba_api.pyd
)都移到了 C:\Python26\LIB\site-packages
结果,我能够从我计算机中的任何文件夹运行C:\Program Files\Zorba XQuery Processor 1.4.0\share\doc\zorba-1.4.0\python\examples\python_test.py
,即使没有 python 行,修改 PATH
注意:
PATH 问题可能与那里的字符串太长有关。 Process Monitor 对查找无法加载的 DLL 很有帮助【讨论】:
以上是关于Python下的XQuery库[关闭]的主要内容,如果未能解决你的问题,请参考以下文章