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 |