SalesOrder属性为'12345678
'(无空格),但是“ id3
”有空格。如何使我的XQuery能够选择SalesOrder,而忽略空格的差异?
"id3": " 12345678"
xquery
/SalesOrder[@SalesOrder = "{id3}"]
答案 0 :(得分:1)
您是说删除空格的$id3
会匹配@SalesOrder
吗?您可以使用正则表达式和fn:replace()
从字符串中删除空格:
/SalesOrder[@SalesOrder = fn:replace($id3, '\s', '')]
答案 1 :(得分:0)
如果只是要标准化的前导和尾随空格,则可以使用fn:normalize-space()
函数。
/SalesOrder[@SalesOrder = fn:normalize-space($id3)]
normalize-space()
将折叠重复的空格并消除值开头和结尾的空格,但将折叠并保留值中间的空格
例如,fn:normalize-space(" 123 456 789 ")
将产生“ 123 456 789
”。
如果要删除所有空格,则可以使用fn:translate()
函数。
例如,fn:translate(" 123 456 789 ", " ", "")
会产生“ 123456789
”)它可能比诸如fn:replace()
之类的正则表达式实现要快一些,性能也更高。