Это может быть сделано, но только если возвращаемое значение, когда узел существует, строковое значение узла, а не сам узел . XPath
substring(concat("N/A", /foo/baz), 4 * number(boolean(/foo/baz)))
вернет строковое значение элемента baz
, если он существует, в противном случае строка "N / A".
Чтобы обобщить подход:
substring(concat($null-value, $node),
(string-length($null-value) + 1) * number(boolean($node)))
где $null-value
- строка с нулевым значением и $node
выражение для выбора узла. Обратите внимание, что если $node
вычисляется для набора узлов, который содержит более одного узла, используется строковое значение first node.