我的$input
XML包含全角阿拉伯数字,作为cjk文本较大片段的一部分。每当我尝试与数字相关的事情发生时,我都会遇到NaN
错误。
是否有方便的方法将这些数字转换为数字?
xquery version "3.0";
1 + 1
我尝试了number(1)
和normalize-unicode(1, '')
,但没有运气。
答案 0 :(得分:2)
首先,关于我在示例代码中看到的一些问题的几个注释,我假设这只是复制/粘贴问题,但值得一提的是:(1)函数是normalize-unicode
,不是unicode-normalize
,(2)它需要字符串(所以你需要引用参数,例如'1'
),以及(3)第二个参数必须匹配一个已知的规范化形式:{{1 }}。
这是一个适合我的解决方案:使用NFKC(兼容性分解)表格:
NFD, NFC, NFKD, NFKC
返回预期结果:
normalize-unicode('1', 'NFKC')
有关详细信息,请参阅https://www.w3.org/TR/xpath-functions-31/#func-normalize-unicode。