繁体   English   中英

如何通过eXist-db的REST api传递xquery?

[英]How do I pass xquery through eXist-db's REST api?

我理解如何使用Xpath

http://localhost:8080/exist/rest/db/movies?_query=//movie[title=%22Spider-Man%22]/node()

但是如何传递xquery查询? 我一直在阅读REST api适用于xpath和xquery,但我无法让我的查询工作。 这是我试图传递的例子(我在xquery沙箱中测试了它并且它可以工作):

for $movie in doc("movies/movies.xml")/movies/movie[year > 2002]
    return <movie> { ($movie/title, $movie/year) } </movie>

如何在URL中传递此内容? 我真的不知道从哪里开始,所以我尝试将上面的查询粘贴为GET参数,类似于xpath查询。 所以我通过的网址是

http://localhost:8080/exist/rest/db/movies/?_query=for%20$movie%20in%20doc(%22movies/movies.xml%22)/movies/movie[year%20%3E%202002]%20return%20%3Cmovie%3E%20{%20($movie/title,%20$movie/year)%20}%20%3C/movie%3E

我得到的页面就是这个 页面回复

我是否完全错误地采取了这种方式? “电影”是我的数据库中的一个集合。 在此输入图像描述

看起来您的查询已成功执行。 <exist:result/>元素看起来非常正确,但它根本找不到符合您的过滤条件的电影。 它也可能是名称空间问题。 您应该在本地尝试查询以查看它是否返回了某些内容。

你的<script id="tinyhippos-injected"/>元素相当奇怪,因为我没想到这里有<script id="tinyhippos-injected"/> 但是,这似乎是由于您使用的某些Chrome扩展程序

此外,如果您的XQuery有点长,则URL参数不会执行,并且编码很难读取和维护。 您可能希望查看有关如何使用XQuery提交POST请求的eXist文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM