考虑以下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 却起作用?另外,有人对如何解决这个问题有什么建议吗?
谢谢。
现在这个谜团已经解开了。
有问题的节点是在另一个函数中重新创建的,其结果是剥离了它的所有祖先信息。不幸的是,以前的开发人员没有记录这个奇妙的小功能,并且花费了我们很多时间。
因此,祖先轴完全按照其应有的方式工作 - 它只是应用于欺骗性节点。
我感谢大家为回答我的问题所做的努力。
大家早上好,
如何使用sql或javascript在marklogic中创建员工表?
预先感谢,纳文
我正在使用 MarkLogic 版本 8。
我可以使用AdminAPI 设置数据库的所有其他配置,除了word lexicon
有什么办法可以word lexicon使用adminAPI添加。
我必须添加word lexicon整理unicode codepoint。
是否可以通过 REST api 从 Marklogic 中的指定集合中获取所有文档?
如何找到名字为Xyz的所有文件,因为名字和名字都出现在同名的标签"name"中
<body><FirstName><name>Abc</name></FirstName><LastName><name>Xyz</name></LastName></body>
Run Code Online (Sandbox Code Playgroud) 以下是其中$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)
我希望代码能够运行并打印日志。我可以深入了解异常的发生方式吗?
let $d := doc('foo.xml')
return concat('let $d := 

', $d)
Run Code Online (Sandbox Code Playgroud)
回报
let $d :=
bar
Run Code Online (Sandbox Code Playgroud)
我需要它返回:
let $d :=
<foo>bar</foo>
Run Code Online (Sandbox Code Playgroud) 我有一系列需要迁移到MarkLogic的文档.我可以通过JSON中的RESTful服务获取这些文档.我想知道的是,无论如何,例如通过MLCP或Query Console来调用那些RESTful服务并提取数据,否则我必须创建一个小型Java应用程序并将文件转储到共享然后从MarkLogic中获取它们.
我正在运行一组关于存储在marklogic中的数据的xqueries.当我看到结果时,我注意到数据记录的排序顺序与我从其加载的文件中的排序顺序不同.我使用flow studio将我的xml文档加载到marklogic中.我需要文件的顺序与源文件中的顺序相同.有没有办法实现这一目标?或者,如果不可能按升序排序文档将解决我的问题.该怎么办?注意:
我想订购xml文件而不是xquery结果
我想在我的系统上安装REST API.
我在哪里可以安装REST API.
到目前为止,我已经在我的系统上安装了Marklogic服务器.