在java程序中,我使用Saxon Library来解析一些XQuery命令。
现在,首先我使用 tokenize() 将一些文本拆分为多个文本值。文本的一个例子是——
Mohan Prakash, Ramesh Saini
Run Code Online (Sandbox Code Playgroud)
我在上面的文本上使用 tokenize() 并以“,”作为分隔符。并将 tokenize 的结果存储在变量 $var 中
之后,我想循环这些文本值,并给出以下输出 -
Mohan Prakash,1
Ramesh Saini,2
Run Code Online (Sandbox Code Playgroud)
从上面可以看出,每行的最后一个值是一个计数器,对于第一行,该值为 1,对于第二行,该值为 2,依此类推...
我想到使用类似下面的代码 -
for $t in $var/position()
return concat($var[$t], ',', $t)
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误,无法在 $var 上使用position(),因为 $var 应该是一个节点。
所以有两种方法可以解决这个问题——
(a) 将$var中的值转换为节点
I tried text{$var} but that is not giving accurate results.
Run Code Online (Sandbox Code Playgroud)
如何将值数组转换为节点?
(b) 使用以下内容——
for $t in $var
Run Code Online (Sandbox Code Playgroud)
这里,如何在for循环中创建并使用计数器,以便计数值可以与$t的每个值一起输出?
at您可以在子句中使用关键字for:
let $var := tokenize('Mohan Prakash, Ramesh Saini', ', ')
for $t at $pos in $var
return concat($t, ',', $pos)
Run Code Online (Sandbox Code Playgroud)
这将返回两个字符串Mohan Prakash,1和Ramesh Saini,2。
| 归档时间: |
|
| 查看次数: |
10609 次 |
| 最近记录: |