使用Python处理eXistdb查询的结果

2024-06-20 15:17:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了以下代码,以获取existdb中存储的XML查询的响应。我得到了值,但问题是输入'instant',如下面的输出所示。我的代码是:

from eulexistdb import db
class TestExist:
    def __init__(self):
        self.db = db.ExistDB("http://localhost:8899/exist/")   

    def get_res(self,query):
        #result = list()
        res = self.db.executeQuery(query)
        hits = self.db.getHits(res)        
        for i in range(hits):
            print self.db.retrieve(res,i)
            print type(self.db.retrieve(res,i))
xquery = '''
let $x:= doc("/db/sample/books.xml")
return $x/bookstore/book/price/text()'''
a = TestExist()
a.get_res(xquery)

现在查询工作正常,结果也打印为:

^{pr2}$

我想要的是返回列表“result”中附加的值。我尝试过类型转换,但失败了。我如何实现这一点?在


Tags: 代码selfdbgetdefresxmlresult
1条回答
网友
1楼 · 发布于 2024-06-20 15:17:01

这很奇怪,docs似乎在说db.retrieve函数应该返回一个字符串,但显然不是这样。在任何情况下,由于print语句从中获取了一个有用的字符串,其中一个应该有效:

result.append(str(self.db.retrieve(res,i)))

或者

^{pr2}$

只需取消#result = list()行的注释,并将上面的一个添加到for循环中。在

相关问题 更多 >