gpt4 book ai didi

xquery-如何在 for 循环中递增计数器变量/如何将字符串值数组转换为节点

转载 作者:行者123 更新时间:2023-12-01 15:27:18 25 4
gpt4 key购买 nike

在 java 程序中,我使用 Saxon 库来解析一些 XQuery 命令。

现在,首先我使用 tokenize() 将一些文本拆分为多个文本值。
文本的一个例子是——

Mohan Prakash, Ramesh Saini

我在上面的文本中使用 tokenize() 以 ',' 作为分隔符。并将标记化的结果存储在变量 $var 中

在此之后,我想遍历这些文本值,并将以下内容作为输出——
  Mohan Prakash,1
Ramesh Saini,2

从上面可以看出,每行中的最后一个值是一个计数器 - 对于第一行,此值为 1,对于第二行,此值 = 2 依此类推...

我想使用类似下面的代码的东西——
for $t in $var/position()
return concat($var[$t], ',', $t)

但是我收到一个错误,我不能在 $var 上使用 position() 因为 $var 应该是一个节点。

所以有两种方法可以解决这个问题——

(a) 将 $var 中的值转换为节点
   I tried text{$var} but that is not giving accurate results.

如何将值数组转换为节点?

(b) 使用以下内容——
      for $t in $var

在这里,如何在 for 循环中创建和使用计数器,以便可以将计数值与 $t 的每个值一起输出?

最佳答案

您可以在 at 子句中使用 for 关键字:

let $var := tokenize('Mohan Prakash, Ramesh Saini', ', ')
for $t at $pos in $var
return concat($t, ',', $pos)

这将返回两个字符串 Mohan Prakash,1Ramesh Saini,2

关于xquery-如何在 for 循环中递增计数器变量/如何将字符串值数组转换为节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com