xquery属性等于ID,带空格

时间:2019-02-11 00:05:06

标签: xquery

SalesOrder属性为'12345678'(无空格),但是“ id3”有空格。如何使我的XQuery能够选择SalesOrder,而忽略空格的差异?

"id3": "       12345678"

xquery

/SalesOrder[@SalesOrder = "{id3}"]

2 个答案:

答案 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()之类的正则表达式实现要快一些,性能也更高。