标签: marklogic

XQuery 祖先轴不起作用,但显式 XPath 起作用

考虑以下XML片段:

<doc>
    <chapter id="1">
        <item>
            <para>some text here</para>
        </item>
    </chapter>
</doc>
Run Code Online (Sandbox Code Playgroud)

在 中XQuery,我有一个函数需要根据作为参数传入的给定“para”元素的祖先章节执行一些操作,如下面的精简示例所示:

declare function doSomething($para){
    let $chapter := $para/ancestor::chapter
    return "some stuff"
};
Run Code Online (Sandbox Code Playgroud)

在该示例中,$chapter始终显示为空。但是,如果我编写类似于以下的函数(即不使用祖先 axis),我会得到所需的“章节”元素:

declare function doSomething($para){
    let $chapter := $para/../..
    return "some stuff"
};
Run Code Online (Sandbox Code Playgroud)

问题是我不能像后一个示例中那样使用显式路径,因为XMl我将要搜索的内容不能保证每次都将“chapter”元素作为祖父母。它可能是曾祖父母曾曾祖父母,等等,如下所示:

<doc>
    <chapter id="1">
        <item>
            <subItem>
                <para>some text here</para>
            </subItem>
        </item>
    </chapter>
</doc>
Run Code Online (Sandbox Code Playgroud)

有谁能解释为什么轴不起作用,而显式 XPath 却起作用?另外,有人对如何解决这个问题有什么建议吗?

谢谢。


解决方案:

现在这个谜团已经解开了。

有问题的节点是在另一个函数中重新创建的,其结果是剥离了它的所有祖先信息。不幸的是,以前的开发人员没有记录这个奇妙的小功能,并且花费了我们很多时间。

因此,祖先轴完全按照其应有的方式工作 - 它只是应用于欺骗性节点。

我感谢大家为回答我的问题所做的努力。

xpath xquery axes marklogic

0
推荐指数
1
解决办法
2534
查看次数

如何使用sql在markLogic中建表

大家早上好,

如何使用sql或javascript在marklogic中创建员工表?

预先感谢,纳文

sql marklogic nosql

0
推荐指数
1
解决办法
493
查看次数

哪个管理 API 可以在 MarkLogic 中的数据库级别添加单词词典?

我正在使用 MarkLogic 版本 8。

我可以使用AdminAPI 设置数据库的所有其他配置,除了word lexicon

有什么办法可以word lexicon使用adminAPI​​添加。

我必须添加word lexicon整理unicode codepoint

marklogic marklogic-8

0
推荐指数
1
解决办法
38
查看次数

MarkLogic:通过 REST 从集合中获取所有文档

是否可以通过 REST api 从 Marklogic 中的指定集合中获取所有文档?

rest marklogic

0
推荐指数
1
解决办法
204
查看次数

使用Xquery在Marklogic中查找具有位于特定路径的标记的所有文档

如何找到名字为Xyz的所有文件,因为名字和名字都出现在同名的标签"name"中

<body><FirstName><name>Abc</name></FirstName><LastName><name>Xyz</name></LastName></body>
Run Code Online (Sandbox Code Playgroud)

marklogic marklogic-8

0
推荐指数
1
解决办法
53
查看次数

当为可选的外部参数传递“()” [空序列]时,“ xdmp:eval”抛出“ XDMP-ARG:-vars无效”异常

以下是其中$p2的一个示例代码optional external parameter(即带有? modifier);传递给XDMP-ARG: -- vars is invalid时,代码会给出异常。empty sequence-()$p2

试穿了 Marklogic 8 & 9

let $query := 
"
declare variable $p1 as node()? external;
declare variable $p2 as node()? external;
(
if($p1) then xdmp:log('P1') else ()
,
if($p2) then xdmp:log('P2') else ()
)

"
let $p1 := <p></p>
let $p2 := ()
return 
xdmp:eval(
          $query,
          (xs:QName('p1'), $p1, xs:QName('p2'), $p2)
         )
Run Code Online (Sandbox Code Playgroud)

我希望代码能够运行并打印日志。我可以深入了解异常的发生方式吗?

marklogic marklogic-8 marklogic-9

0
推荐指数
1
解决办法
32
查看次数

Marklogic 中文档的时间戳

我想知道文档的当前时间戳我还需要如何在更新时找到同一文档的时间戳

是否可以?

marklogic

0
推荐指数
1
解决办法
80
查看次数

-1
推荐指数
1
解决办法
1421
查看次数

通过外部RESTful服务将数据批量加载到MarkLogic中

我有一系列需要迁移到MarkLogic的文档.我可以通过JSON中的RESTful服务获取这些文档.我想知道的是,无论如何,例如通过MLCP或Query Console来调用那些RESTful服务并提取数据,否则我必须创建一个小型Java应用程序并将文件转储到共享然后从MarkLogic中获取它们.

rest json marklogic

-1
推荐指数
1
解决办法
70
查看次数

Marklogic:如何将XML文档加载到Marklogic中,其顺序与源文件中的顺序相同

我正在运行一组关于存储在marklogic中的数据的xqueries.当我看到结果时,我注意到数据记录的排序顺序与我从其加载的文件中的排序顺序不同.我使用flow studio将我的xml文档加载到marklogic中.我需要文件的顺序与源文件中的顺序相同.有没有办法实现这一目标?或者,如果不可能按升序排序文档将解决我的问题.该怎么办?注意:
我想订购xml文件而不是xquery结果

xml reload marklogic

-2
推荐指数
1
解决办法
98
查看次数

从哪里下载REST API

我想在我的系统上安装REST API.

我在哪里可以安装REST API.

到目前为止,我已经在我的系统上安装了Marklogic服务器.

marklogic

-4
推荐指数
1
解决办法
89
查看次数

XQuery显示集合名称

什么是XQuery搜索整个数据库并显示具有给定元素名称的集合名称?

xquery marklogic

-4
推荐指数
1
解决办法
212
查看次数

标签 统计

marklogic ×12

marklogic-8 ×3

xquery ×3

rest ×2

axes ×1

json ×1

marklogic-9 ×1

nosql ×1

reload ×1

sql ×1

xml ×1

xpath ×1