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

Veja também