functx:avg-empty-is-zero

A média, contando valores "vazios" como zero

Descrição

A função functx:avg-empty-is-zero devolve a média dos valores não vazios de $values sobre o número de nós informado em $allNodes. É útil em cálculos em que elementos ou atributos "ausentes" devem contar como zero, em vez de ficarem fora da média.

Parâmetros

Descrição

values:numeric()

os valores para a média

allNodes:node()

a sequência de todos os nós sobre os quais calcular a média

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

Explicação

functx:avg-empty-is-zero($in-xml//price/@discount, $in-xml//price)

4

O desconto médio dos preços é 4, se os descontos do 3º e do 4º preço contarem como zero. Usar fn:avg($in-xml//price/@discount) daria erro, porque o desconto do 4º preço não é um número válido. Se o 4º preço não tivesse o atributo discount, o resultado seria 8.

Veja também