NULL-литерал в XPath

Существует ли NULL-литерал в XPath 1.0 или 2.0?

Мой вариант использования, что у меня есть условное (if then else) Выражение XPath и я хочу вернуть NULL для обозначения определенного условия. Я боюсь, что возвращение пустой строки может быть неоднозначным в моем случае, так как это может быть действительным результатом другой части if then else выражение.

1 ответ

Решение

Пустая последовательность () может быть использован как таковой. Он также возвращается, если для выражения пути нет результата.

let $foo := "foo"
return
  if ($foo = ("foo", "bar", "batz")) then
    $foo
  else
    ()

Вы можете проверить наличие пустой последовательности, используя

let $result := ()
return empty($result)

Если вы передадите результат первого выражения XPath в свой собственный код, вы сможете отличить "NULL" от пустой строки, не имея результатов (пустая последовательность / "NULL") или имея строку результата (которая может быть пустой).).

Другие вопросы по тегам