functx:if-empty

O primeiro argumento, se não estiver em branco; senão, o segundo

Descrição

A função functx:if-empty é útil para dar um valor padrão quando um elemento ou atributo está vazio ou não existe. Um elemento é considerado vazio se não tiver conteúdo (por exemplo, <value></value> ou <value/>). Um atributo é considerado vazio se o valor dele for uma string vazia (por exemplo, value=""). Se $node não estiver vazio, a função devolve o valor tipado do nó. Se estiver vazio, ou não existir (for a sequência vazia), devolve $value.

Observação: esta função é parecida com a eg:if-empty 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 nó que pode estar vazio

value:item()

o item ou os itens a usar se o nó estiver vazio

Exemplos

Os exemplos abaixo usam este documento de entrada:

<xsl:variable name="in-xml" as="item()*">
  <prices>
     <price discount="10.00">29.99</price>
     <price discount="6.00">39.99</price>
     <price></price>
     <price discount="">49.99</price>
  </prices>

</xsl:variable>

XPath

Resultado

functx:if-empty($in-xml//price[1], 0)

29.99

functx:if-empty($in-xml//price[3], 0)

0

functx:if-empty($in-xml//price[99], 0)

0

functx:if-empty($in-xml//price[1]/@discount, 0)

10.00

functx:if-empty($in-xml//price[3]/@discount, 0)

0

functx:if-empty($in-xml//price[4]/@discount, 0)

0

Veja também