Condividi tramite


Funzione string

Converte un oggetto in stringa.

string string(object?)

Osservazioni

Conversione di set di nodi in stringhe

La funzione string() converte un set di nodi in una stringa restituendo il valore della stringa del primo nodo del set, che in alcune istanze può restituire risultati imprevisti. Se, ad esempio, si è posizionati sul nodo <test> seguente:

<test>
  <item>Apple</item>
  <item>Banana</item>
  <item>Orange</item>
</test>

La chiamata di funzione string() seguente restituisce la prima stringa del nodo ("Apple"):

string(//text()) 

Se si desidera che la funzione string() concateni l'intero testo figlio, è necessario passare un singolo nodo anziché un set di nodi. Ad esempio, la chiamata di funzione string() seguente restituirà "AppleBananaOrange":

string(.)

Questo comportamento restituisce il valore True per tutte le funzioni XPath che accettano argomenti di stringa. Ad esempio, la chiamata di funzione contains() seguente:

contains(//text(),'Banana')

restituisce un valore false. In questo esempio, ciò avviene perché quando il primo argomento ("//text()") viene convertito in stringa utilizzando la funzione string(//text()) quest'ultima ricerca solo la prima stringa del nodo ("Apple"). Al contrario, se la funzione contains() viene modificata per utilizzare il selettore punto (".") per il primo argomento nel modo seguente:

contains(.,'Banana') 

Il valore restituito da contains() sarebbetrue in quanto viene ricercata la stringa "AppleBananaOrange".

ms256133.note(it-it,VS.100).gifNota:
Se il set di nodi è vuoto, viene restituita una stringa vuota.

Gestione di spazi vuoti nelle conversioni di set di nodi

I set di nodi che contengono spazi vuoti possono essere gestiti nei due modi seguenti:

Ad esempio, se un'espressione .//text() venisse applicata all'elemento seguente per selezionare il contenuto di testo interno:

<name>element</name>

Restituirà, per impostazione predefinita, un set di tre nodi come illustrato di seguito dove il primo e il terzo nodo rappresentano nodi con spazi vuoti iniziali e finali adiacenti ai dati di testo effettivi ("elemento"):

Node 1: &#10;&#32;&#32;
Node 2: element
Node 03: &#10;

Per ignorare solo i nodi con spazi vuoti, è possibile specificare l'istruzione <xsl:strip-space> nel foglio di stile XSLT nel modo seguente:

<xsl:strip-space elements="name"/>

In alternativa, è possibile scorrere in ciclo e ripetere una ricerca per ciascun nodo discendente utilizzando il ciclo <xsl:for-each> esemplificativo illustrato di seguito:

<xsl:for-each select=".//text()">
    <xsl:if test="contains(., 'element')" >
    …
    </xsl:if>
</xsl:for-each>

Conversione di numeri in stringhe

Un numero viene convertito in stringa nel modo seguente.

  • NaN viene convertito nella stringa NaN.

  • zero positivo viene convertito nella stringa "0".

  • zero negativo viene convertito nella stringa "0".

  • infinito positivo viene convertito nella stringa "Infinity".

  • infinito negativo viene convertito nella stringa "-Infinity".

  • Se il numero è un numero intero, viene rappresentato in formato decimale come numero senza separatore decimale e senza zeri iniziali, preceduto dal segno meno (-) se il numero è negativo.

  • Altrimenti, il numero è rappresentato in formato decimale con un separatore decimale e almeno una cifra prima e dopo il separatore decimale, preceduto da un segno meno (-) se il numero è negativo; non devono essere presenti zeri iniziali prima del separatore decimale, a parte forse la cifra obbligatoria immediatamente prima del separatore decimale; dopo la cifra obbligatoria successiva al separatore decimale devono essere presenti tutte le cifre necessarie per distinguere in maniera univoca il numero da tutti gli altri valori numerici IEEE 754.

ms256133.note(it-it,VS.100).gifNota:
La funzione string() non è progettata per la conversione di numeri in stringhe per la presentazione agli utenti.La funzione format-number() e l'elemento <xsl:number> in XSL Transformations (XSLT) offrono questa funzionalità.

Conversione di valori booleani in stringhe

Il valore booleano false viene convertito nella stringa "false". Il valore booleano true viene convertito nella stringa "true".

Conversione di oggetti in stringhe

Un oggetto di un tipo diverso dai quattro tipi di base viene convertito in una stringa in un modo che dipende da tale tipo.

Se l'argomento viene omesso, verrà utilizzata l'impostazione predefinita che presenta un set di nodi con il nodo di contesto come unico membro.

Esempio

Nell'esempio seguente viene illustrato come utilizzare la funzione string() in un'espressione XPath. In due casi (vedere le istruzioni in grassetto nel file XSLT di seguito), la funzione viene utilizzata per assicurarsi che il relativo argomento sia considerato come un'espressione di stringa.

File XML (string.xml)

File XSLT (string.xsl)

Output

1     +   2.00   =   3
One   +   2.00   =   NaN
1     -   2.00   =   -1
1     *   2.00   =   2
-1   div   0.0   =   -Infinity
5    mod   2     =   1
5    mod   2.5   =   0
5    mod   2.25  =   0.5
0     &    1     =   Invalid arithmetic operation

Vedere anche

Riferimento

Riferimenti dei tipi di dati XML
Funzione format-number

Concetti

Valori NaN