首页 > 解决方案 > 在 Xquery 中反转字段中的数据

问题描述

我有如下输入字段

<BID>123-HSB-456789</BID>

我想在哪里反转该字段的内容我的预期结果应该如下所示

<BID>456789-HSB-123</BID>

我什至尝试过反向功能....但它不起作用

https://xqueryfiddle.liberty-development.net/nc4P6yf/1

这里有任何帮助

标签: xquery

解决方案


您只给出了一个测试用例,而一个测试用例没有制定规范。例如,您没有告诉我们元素的值是否总是包含两个连字符。

这里有三个表达式可以满足你在这个测试用例上的需要,但它们并不等价,并且会对不同的测试用例做不同的事情:

  1. tokenize($in, '-') => reverse() => string-join('-')
  2. replace($in, '([0-9]*)-([A-Z]*)-([0-9]*), '$3-$2-$1')
  3. substring($in, 12, 3) || '-' || substring($in, 8, 3) || '-' || substring($in, 1, 6)

PS 请确保您在使用之前了解代码,并在一系列输入上对其进行测试。

PP.S. 这里有一些结构需要 XQuery 3.0 或 3.1。


推荐阅读