首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Marklogic中的TDE,如何保存TDE中的位置()

使用Marklogic中的TDE,如何保存TDE中的位置()
EN

Stack Overflow用户
提问于 2022-10-05 07:20:13
回答 1查看 75关注 0票数 2

例如,我有一个XML文件,如:

代码语言:javascript
复制
<root>
<step>position 1 </step>
<step>position 2 </step>
<step>position 3</step>
</root>

顺序很重要,因为每个步骤的权重是不同的,我不知道文件中有多少个步骤。在Xpath中有position()函数。

但是对于TDE,如果我将上下文放在创建de row的步骤上,则位置始终是1。

我找不到解决办法。

EN

回答 1

Stack Overflow用户

发布于 2022-10-05 14:14:35

您可以count()preceding-sibling::step号码

代码语言:javascript
复制
1 + count(preceding-sibling::step)

举个例子:

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73956988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档