【发布时间】:2019-02-22 05:09:24
【问题描述】:
https://www.w3.org/TR/xpath-functions/#func-tokenize 解释了tokenize 的单参数版本:
此函数的单参数形式将提供的字符串拆分为 空白边界。
然后继续定义或解释
调用
fn:tokenize($input)等价于调用fn:tokenize(fn:normalize-space($input), ' '))第二个在哪里 参数是单个空格字符 (x20)
但是,当我尝试将 count(tokenize('1 2 3')), count(tokenize('1
2
3')) 与 Saxon 或 BaseX 或 XmlPrime 一起使用时,我得到了 3 3,而在所有三种实现中假定等效的 count(tokenize('1 2 3', ' ')), count(tokenize('1
2
3', ' ')) 给了我 3 1。
因此,所有三个实现似乎都与 tokenize($s) 文本解释所说的(“在空白边界处拆分提供的字符串”)有关,但似乎在 fn:tokenize($input) 和 fn:tokenize(fn:normalize-space($input), ' '))规范成立,如果按字面意思传入一个空格,那么只有那个空格用作分隔符,而不是空白边界。
规范中作为单参数版本的定义给出的等价是错误的吗?
【问题讨论】:
标签: xslt-3.0 xquery-3.1 xpath-3.1