XQuery:如何在序列后添加最后一个元素以外的逗号

我们是

我有以下xml:

<form>
<bibl>
    <biblScope>1</biblScope>
    <biblScope>a</biblScope>
</bibl>
<bibl>
    <biblScope>2</biblScope>
    <biblScope>b</biblScope>
</bibl>
<bibl>
    <biblScope>38</biblScope>
    <biblScope>c</biblScope>
</bibl>
</form>

使用此XQuery

for $bibl in form/bibl 
return
<div>
{
for $biblScope in $bibl/biblScope/text()
    return
    $biblScope
}
{if ($bibl[position()] ne $bibl[last()]) then ',' else '@'}
</div>  

<biblScope>内容被印刷一个接一个。在每个bibl元素之后,除了最后一个元素,我想添加一个分隔符(逗号/“,”),但是使用上面的代码,我得到的只是

<div>
1a
@
</div>
<div>
2b
@
</div>
<div>
38c
@
</div>

这绝对是错误的,因为我想拥有的是

<div>1a,</div>
<div>2b,</div>
<div>38c@</div>

(在每个bibl元素内容之后添加一个逗号;应该在最后一个后跟@逗号而不是逗号。)

经过一段时间的尝试,我可能需要一些帮助。正确的方法是什么?

詹斯原为

问题是,position()last()在当前背景下,这不是由FLWOR表达式设置工作。如果要使用类似的语义,请使用以下at $position语法获取位置计数器,并将其定义$last为结果数:

let $last := count(form/bibl)
for $bibl at $position in form/bibl 
return
<div>
{
for $biblScope in $bibl/biblScope/text()
    return
    $biblScope
}
{if ($position ne $last) then ',' else '@'}
</div>  

如果您能够使用XQuery 3.0,则!此处可能会使用应用程序运算符通过将轴步和元素构造函数替换为不必要的循环,您可以依赖位置谓词,因为上下文已设置为<bibl/>元素:

form/bibl ! <div>
{
  biblScope/text(),
  if (position() ne last()) then ',' else '@'
}
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使列表的最后一个元素以点结尾,其他元素以逗号结尾?

来自分类Dev

药剂-如何获取除列表中的最后一个元素以外的所有元素?

来自分类Dev

如何针对除CSS中最后一个元素以外的所有元素?

来自分类Dev

我如何使用jQuery获取除最后一个元素以外的所有元素

来自分类Dev

如何删除HTML表单中最后一个元素以外的所有元素

来自分类Dev

如何在字符串的最后一个逗号后添加文本?(RegEX的.Net版本)

来自分类Dev

如何使用jQuery隐藏除最后一个元素以外的所有元素(按类)

来自分类Dev

如何使用jQuery隐藏除最后一个元素以外的所有元素(按类)

来自分类Dev

GatsbyJs如何在每个标签名称后添加逗号,但不能在最后一个标签名称后添加逗号

来自分类Dev

HTML CSS隐藏除最后一个元素以外的所有元素

来自分类Dev

选择除最后一个列表元素以外的所有元素

来自分类Dev

选择除具有特定类的最后一个元素以外的所有元素

来自分类Dev

CIAreaHistogram给我除最后一个元素以外的所有0?

来自分类Dev

如何在字段的最后一个逗号后获取字符串

来自分类Dev

如何在C ++中最后一个数字/输出循环后删除逗号

来自分类Dev

数组:如何在指定索引之前显示数组的第一个和最后一个元素以及数组元素的差异?

来自分类Dev

CSS nth-child在长度未知时选择除最后一个元素以外的所有元素

来自分类Dev

如何在二维列表中添加元素以再派生一个数组?

来自分类Dev

如何分隔一个数组,以便列出除最后一个以外的所有用逗号分隔的元素?

来自分类Dev

相对于Matlab中的最后一列,除了最后一个元素以外,对相等的行进行排序

来自分类Dev

如何去掉最后一个逗号?

来自分类Dev

如何在jQuery的最后一个元素之后添加html标签?

来自分类Dev

如何在jQuery的最后一个元素之后添加html标签?

来自分类Dev

如何在列表的最后一个元素之前添加“和”?

来自分类Dev

如何在C++中将元素添加到数组的最后一个

来自分类Dev

删除最后一个元素后的“逗号”分隔符

来自分类Dev

如何在PHP的最后一个结果前为每个字符串结果添加逗号和“ and”

来自分类Dev

如何从数组中删除除最后N个元素以外的所有元素?

来自分类Dev

如何从数组中删除除最后N个元素以外的所有元素?

Related 相关文章

  1. 1

    如何使列表的最后一个元素以点结尾,其他元素以逗号结尾?

  2. 2

    药剂-如何获取除列表中的最后一个元素以外的所有元素?

  3. 3

    如何针对除CSS中最后一个元素以外的所有元素?

  4. 4

    我如何使用jQuery获取除最后一个元素以外的所有元素

  5. 5

    如何删除HTML表单中最后一个元素以外的所有元素

  6. 6

    如何在字符串的最后一个逗号后添加文本?(RegEX的.Net版本)

  7. 7

    如何使用jQuery隐藏除最后一个元素以外的所有元素(按类)

  8. 8

    如何使用jQuery隐藏除最后一个元素以外的所有元素(按类)

  9. 9

    GatsbyJs如何在每个标签名称后添加逗号,但不能在最后一个标签名称后添加逗号

  10. 10

    HTML CSS隐藏除最后一个元素以外的所有元素

  11. 11

    选择除最后一个列表元素以外的所有元素

  12. 12

    选择除具有特定类的最后一个元素以外的所有元素

  13. 13

    CIAreaHistogram给我除最后一个元素以外的所有0?

  14. 14

    如何在字段的最后一个逗号后获取字符串

  15. 15

    如何在C ++中最后一个数字/输出循环后删除逗号

  16. 16

    数组:如何在指定索引之前显示数组的第一个和最后一个元素以及数组元素的差异?

  17. 17

    CSS nth-child在长度未知时选择除最后一个元素以外的所有元素

  18. 18

    如何在二维列表中添加元素以再派生一个数组?

  19. 19

    如何分隔一个数组,以便列出除最后一个以外的所有用逗号分隔的元素?

  20. 20

    相对于Matlab中的最后一列,除了最后一个元素以外,对相等的行进行排序

  21. 21

    如何去掉最后一个逗号?

  22. 22

    如何在jQuery的最后一个元素之后添加html标签?

  23. 23

    如何在jQuery的最后一个元素之后添加html标签?

  24. 24

    如何在列表的最后一个元素之前添加“和”?

  25. 25

    如何在C++中将元素添加到数组的最后一个

  26. 26

    删除最后一个元素后的“逗号”分隔符

  27. 27

    如何在PHP的最后一个结果前为每个字符串结果添加逗号和“ and”

  28. 28

    如何从数组中删除除最后N个元素以外的所有元素?

  29. 29

    如何从数组中删除除最后N个元素以外的所有元素?

热门标签

归档