使用xquery转换全角数字

时间:2016-02-15 11:33:20

标签: xml unicode xquery

我的$input XML包含全角阿拉伯数字,作为cjk文本较大片段的一部分。每当我尝试与数字相关的事情发生时,我都会遇到NaN错误。

是否有方便的方法将这些数字转换为数字?

xquery version "3.0";
1 + 1

我尝试了number(1)normalize-unicode(1, ''),但没有运气。

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