空格(XQUERY)上的Count()

时间:2018-11-14 11:53:18

标签: xml count xquery

我想算一下我列出了多少本书 我有:

books = "book-one book-two book-three ..."

如果我使用

count(books)

无论我的字符串有多长,它只会返回1,因为我猜是因为count分开。

我该如何计算空格上的分隔?

1 个答案:

答案 0 :(得分:2)

假设书籍之间用空格隔开,则可以使用fn:tokenize()函数将字符串分成一系列字符串:

fn:tokenize("book-one book-two book-three", " ")

这将返回一系列书籍:

("book-one", "book-two", "book-three")

fn:tokenize()函数可以与" "之类的文字字符串一起使用,也可以采用"\s+"之类的正则表达式(表示“一个或多个空格字符”)。这样可以进行一些非常复杂的模式匹配。

有关此功能的规范描述,请参见https://www.w3.org/TR/xpath-functions-31/#func-tokenize,有关XPath和XQuery中的正则表达式的更多信息,请参见https://www.w3.org/TR/xpath-functions-31/#string.match