Compartir vía


Funciones usadas en nodos: local-name

Se aplica a:SQL Server

Devuelve la parte local del nombre de $arg como una cadena xs:string que será la cadena de longitud cero o tendrá la forma léxica de un xs:NCName. Si no se proporciona el argumento, el valor predeterminado será el nodo de contexto.

Sintaxis

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

Argumentos

$arg
Nombre del nodo cuya parte de nombre local se recuperará.

Comentarios

  • En SQL Server, fn:local-name() sin un argumento solo se puede usar en el contexto de un predicado dependiente del contexto. En concreto, solo se puede utilizar entre corchetes ([ ]).

  • Si se proporciona el argumento y es la secuencia vacía, la función devolverá la cadena de longitud cero.

  • Si el nodo de destino no tiene nombre porque es un nodo de documento, un comentario o un nodo de texto, la función devolverá la cadena de longitud cero.

Ejemplos

En este tema se proporcionan ejemplos de XQuery en instancias XML almacenadas en varias columnas de tipo xml de la base de datos AdventureWorks.

A. Recuperar el nombre local de un nodo específico

La consulta siguiente se especifica en una instancia XML sin tipo. La expresión de consulta, local-name(/ROOT[1]), recupera la parte de nombre local del nodo especificado.

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

La consulta siguiente se especifica en la columna Instructions, una columna xml con tipo, de la tabla ProductModel. La expresión, local-name(/AWMI:root[1]/AWMI:Location[1]), devuelve el nombre local, Location, del nodo especificado.

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. Usar local-name sin argumento en un predicado

La consulta siguiente se especifica en la columna Instrucciones, columna xml con tipo, de la tabla ProductModel. La expresión devuelve todos los elementos secundarios del <root> elemento cuyo nombre local parte de QName es "Location". La función local-name() se especifica en el predicado y no tiene argumentos El nodo de contexto lo usa la función .

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 consulta devuelve todos los <Location> elementos secundarios del <root> elemento .

Consulte también

Funciones en nodos
namespace-uri (función de XQuery)