number
Converte um valor ou um nó em número
Descrição
A função fn:number constrói um valor xs:double a partir de um nó que contém um número ou de um valor atômico. É útil para dizer ao processador que trate um nó ou um valor como número, seja qual for o tipo declarado dele (se houver). Devolve o argumento convertido em xs:double.
A diferença entre fn:number e o construtor xs:double é que fn:number devolve NaN quando o argumento não pode ser convertido em número, enquanto o construtor xs:double dá erro.
Parâmetros |
Descrição |
|---|---|
arg:integer() |
o valor a converter em número; se omitido, o item de contexto |
Exemplos
Os exemplos abaixo usam este documento de entrada:
<xsl:variable name="priceDoc" select="doc('http://www.functx.com/input/prices.xml')"/>
<!-- content of prices.xml -->
<prices>
<priceList effDate="2006-11-15">
<prod num="557">
<price currency="USD">29.99</price>
<discount type="CLR">10.00</discount>
</prod>
<prod num="563">
<price currency="USD">69.99</price>
</prod>
<prod num="443">
<price currency="USD">39.99</price>
<discount type="CLR">3.99</discount>
</prod>
</priceList>
</prices>
XPath |
Resultado |
Explicação |
|---|---|---|
number($priceDoc//prod[1]/price) |
29.99 |
O texto do elemento price é convertido em número. |
number($priceDoc//prod/price) |
Error XPTY0004 |
number() aceita um único item, e há três elementos price. |
number($priceDoc//prod[1]/@currency) |
NaN |
USD não é um número. |
number('29,99') |
NaN |
A vírgula não é separador decimal, então a string não é um número. |
number('ABC') |
NaN |
ABC não é um número. |
number( () ) |
NaN |
A sequência vazia vira NaN. |
$priceDoc//prod/price[number() > 35] |
<price currency="USD">69.99</price> <price currency="USD">39.99</price> |
Sem argumento, number() converte o item de contexto: os preços maiores que 35. |