Condividi tramite


Funzioni su nodi - local-name

Si applica a: SQL Server

Restituisce la parte locale del nome di $arg come xs:string che sarà la stringa di lunghezza zero o avrà la forma lessicale di un xs:NCName. Se non si specifica l'argomento, il valore predefinito è il nodo di contesto.

Sintassi

fn:local-name() as xs:string  
fn:local-name($arg as node()?) as xs:string  

Argomenti

$arg
Nome del nodo di cui verrà recuperata la parte local-name.

Osservazioni:

  • In SQL Server fn:local-name() senza un argomento può essere usato solo nel contesto di un predicato dipendente dal contesto. In particolare, può essere utilizzata solo tra parentesi ([ ]).

  • Se si specifica l'argomento e questo corrisponde alla sequenza vuota, la funzione restituisce la stringa di lunghezza zero.

  • Se il nodo di destinazione non dispone di un nome specifico, in quanto è un nodo di documento, un nodo di commento o un nodo di testo, la funzione restituisce la stringa di lunghezza zero.

Esempi

In questo argomento vengono forniti esempi di XQuery su istanze XML archiviate in varie colonne di tipo xml nel database AdventureWorks.

R. Recupero del nome locale di un nodo specifico

La query seguente viene eseguita su un'istanza XML non tipizzata. L'espressione della query, local-name(/ROOT[1]), recupera la parte del nome locale del nodo specificato.

declare @x xml  
set @x='<ROOT><a>111</a></ROOT>'  
SELECT @x.query('local-name(/ROOT[1])')  
-- result = ROOT  

La query viene eseguita sulla colonna Instructions, una colonna xml tipizzata della tabella ProductModel. L'espressione local-name(/AWMI:root[1]/AWMI:Location[1]) restituisce il nome locale Location del nodo specificato.

SELECT Instructions.query('  
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;  
     local-name(/AWMI:root[1]/AWMI:Location[1])') as Result  
FROM Production.ProductModel  
WHERE ProductModelID=7  
-- result = Location  

B. Utilizzo della funzione local-name senza argomento in un predicato

La query seguente viene specificata sulla colonna Instructions, colonna xml tipizzata, della tabella ProductModel. L'espressione restituisce tutti gli elementi figlio dell'elemento <root> il cui nome locale fa parte di QName è "Location". La funzione local-name() viene specificata nel predicato e non ha argomenti Il nodo di contesto viene usato dalla funzione.

SELECT Instructions.query('  
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;  
  /AWMI:root//*[local-name() = "Location"]') as Result  
FROM Production.ProductModel  
WHERE ProductModelID=7  

La query restituisce tutti gli <Location> elementi figlio dell'elemento .<root>

Vedi anche

Funzioni nei nodi
Funzione namespace-uri (XQuery)