例如,我有一个XML文件,如:
<root>
<step>position 1 </step>
<step>position 2 </step>
<step>position 3</step>
</root>顺序很重要,因为每个步骤的权重是不同的,我不知道文件中有多少个步骤。在Xpath中有position()函数。
但是对于TDE,如果我将上下文放在创建de row的步骤上,则位置始终是1。
我找不到解决办法。
发布于 2022-10-05 14:14:35
您可以count()的preceding-sibling::step号码
1 + count(preceding-sibling::step)举个例子:
let $doc :=
<root>
<step>position 1 </step>
<step>position 2 </step>
<step>position 3</step>
</root>
let $tde:=
<template xmlns="http://marklogic.com/xdmp/tde">
<context>/root/step</context>
<rows>
<row>
<schema-name>stackoverflow</schema-name>
<view-name>positionExample</view-name>
<columns>
<column>
<name>name</name>
<scalar-type>string</scalar-type>
<val>.</val>
</column>
<column>
<name>position</name>
<scalar-type>integer</scalar-type>
<val>1 + count(preceding-sibling::step)</val></column>
</columns>
</row>
</rows>
</template>
return
tde:node-data-extract($doc,$tde)https://stackoverflow.com/questions/73956988
复制相似问题