MarkLogic cts:搜索节点层次结构

时间:2012-10-23 13:01:24

标签: xquery marklogic

我试图解决我在MarkLogic中有一组文档的问题,并且我想在层次结构中的特定点搜索特定节点。我想使用类似于cts:element-value-query的东西,但似乎它没有指定层次结构级别或类似的选项。

我想这样做的原因是在层次结构的其他地方有相同的命名空间/命名节点,我想为了这个特定查询而忽略它们。

一个例子是这样的:

<rootNode xmlns="myNamespace">
    <someBooleanValue>true</someBooleanValue>
    <someSubNode> 
        <someBooleanValue>false</someBooleanValue>
    </someSubNode>
</rootNode>

我想要的地方,例如,rootNodes someBooleanValue为root的直接子节点。我知道如何专门查询someSubNode的someBooleanValue子节点,但是我试图弄清楚如何专门为rootNode的子节点做这个。

出于此问题的目的,请假设更改XML结构/命名空间并不容易。这是专门针对MarkLogic 5.x。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将查询包装在cts:element-query中,但这类似于祖先或自我检查,不一定只是父检查。如果你使用这样的通用名称,那可能就不够了。

更好的选择是考虑升级到ML 6,它们引入了路径索引,允许您指定元素的特定路径。可能值得它..

HTH!

相关问题