functx:if-absent
O primeiro argumento, se não estiver vazio; senão, o segundo
Descrição
A função functx:if-absent é útil para dar um valor padrão quando um dado não existe. Ela testa se o argumento $arg é a sequência vazia e, se for, devolve $value. Senão, devolve o valor tipado do próprio $arg. Repare que um elemento ou atributo não é considerado "ausente" se contiver uma string vazia; só se não existir.
Observação: esta função é parecida com a eg:if-absent do documento XQuery 1.0 and XPath 2.0 Functions and Operators, mas aceita também nós de atributo e valores atômicos.
Parâmetros |
Descrição |
|---|---|
arg:item() |
o item ou os itens que podem não existir |
value:item() |
o item ou os itens a usar se o item não existir |
Exemplos
Os exemplos abaixo usam este documento de entrada:
<xsl:variable name="in-xml" as="item()*">
<prices>
<price value="29.99" discount="10.00"/>
<price value="39.99" discount="6.00"/>
<price value="69.99"/>
<price value="49.99" discount=""/>
</prices>
</xsl:variable>
XPath |
Resultado |
|---|---|
data(functx:if-absent($in-xml//price[1]/@discount, 0)) |
10.00 |
data(functx:if-absent($in-xml//price[3]/@discount, 0)) |
0 |
data(functx:if-absent($in-xml//price[4]/@discount, 0)) |
zero-length untyped value |