gpt4 book ai didi

xpath - BaseX XQuery 错误 : root(): no context value bound

转载 作者:行者123 更新时间:2023-12-03 16:05:21 31 4
gpt4 key购买 nike

我正在尝试在 BaseX 中运行以下 XQuery 表达式以提取两个连续标题之间的元素。 (作为文章部分)。

xquery for $x in doc("test.xq")//h2, 
$y in $x/following-sibling::h2[1]
return //*[$x/following::* and $y/preceding::*]

但是报错

Error:
Stopped at D:/Program Files/BaseX/data/test.xq, 1/74:
[XPDY0002] root(): no context value bound.

我的意思是如果 $x 是标题并且 $y 是 $x 之后的第一个标题,那么选择 $x/的通用文本以下::*$y/preceding::*

但是我不确定我的表达式是否有效,但我的问题是如何在没有错误的情况下执行我的预期查询?

如果您也有适合我需要的表达式,欢迎。

最佳答案

[...] to extract elements between two succeeding headings [...]

你需要更多类似的东西:

for $x in doc("test.xq")//h2
return $x/following-sibling::*[preceding-sibling::h2[1] is $x]

但它本身不会给您任何有用的东西,因为 XPath 和 XQuery 数据模型只有平面序列,没有“多维数组”。当您有一个 for 为每个“迭代”返回一个值序列时,for 表达式的总体结果是所有结果序列的串联,因此写成在该表达式上方,将简单地返回单个平面列表中每个“部分”中的所有元素。如果您想按部分对元素进行分组,那么您需要为每个组构造一个新的 XML 元素

for $x in doc("test.xq")//h2
return
<section>{$x/following-sibling::*[preceding-sibling::h2[1] is $x]}</section>

关于xpath - BaseX XQuery 错误 : root(): no context value bound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735839/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com