在 Xquery 中反转字段中的数据
Reverse the data in a field in Xquery
我有如下输入字段
<BID>123-HSB-456789</BID>
我想反转这个字段的内容
我的预期结果应该如下所示
<BID>456789-HSB-123</BID>
我什至试过反向功能....但它不起作用
https://xqueryfiddle.liberty-development.net/nc4P6yf/1
这里有任何帮助
你只给了一个测试用例,一个测试用例没有做规范。例如,您没有告诉我们元素的值是否始终包含两个连字符。
这里有三个表达式可以满足您对这个测试用例的需求,但它们并不等价,并且会针对不同的测试用例做不同的事情:
tokenize($in, '-') => reverse() => string-join('-')
replace($in, '([0-9]*)-([A-Z]*)-([0-9]*), '--')
substring($in, 12, 3) || '-' || substring($in, 8, 3) || '-' || substring($in, 1, 6)
P.S。请确保您在使用之前理解代码,并在一系列输入上对其进行测试。
PP.S。这里有一些构造需要 XQuery 3.0 或 3.1。
我有如下输入字段
<BID>123-HSB-456789</BID>
我想反转这个字段的内容 我的预期结果应该如下所示
<BID>456789-HSB-123</BID>
我什至试过反向功能....但它不起作用
https://xqueryfiddle.liberty-development.net/nc4P6yf/1
这里有任何帮助
你只给了一个测试用例,一个测试用例没有做规范。例如,您没有告诉我们元素的值是否始终包含两个连字符。
这里有三个表达式可以满足您对这个测试用例的需求,但它们并不等价,并且会针对不同的测试用例做不同的事情:
tokenize($in, '-') => reverse() => string-join('-')
replace($in, '([0-9]*)-([A-Z]*)-([0-9]*), '--')
substring($in, 12, 3) || '-' || substring($in, 8, 3) || '-' || substring($in, 1, 6)
P.S。请确保您在使用之前理解代码,并在一系列输入上对其进行测试。
PP.S。这里有一些构造需要 XQuery 3.0 或 3.1。