Count () на пустом месте XQUERY - PullRequest
       11

Count () на пустом месте XQUERY

0 голосов
/ 14 ноября 2018

Я хочу посчитать, сколько книг я перечислил у меня:

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

Если я использую

count(books)

, он возвращает только 1, независимо от длины моей строки, так какЯ полагаю, счетчик разделяется на

Как вместо этого можно считать разделение пробелом?

1 Ответ

0 голосов
/ 14 ноября 2018

Предполагая, что книги разделены пробелом, вы можете разбить строку на последовательность строк, используя функцию 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.

.
...