Partilhar via


Funções em Nós – local-name

Aplica-se: SQL Server

Retorna a parte local do nome de $arg como um xs:string que será a cadeia de caracteres de comprimento zero ou terá a forma lexical de um xs:NCName. Se o argumento não for fornecido, o padrão será o nó de contexto.

Sintaxe

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

Argumentos

$arg
Nome de nó cuja parte local-name será recuperada.

Comentários

  • No SQL Server, fn:local-name() sem um argumento só pode ser usado no contexto de um predicado dependente de contexto. Mais precisamente, ele só pode ser usado entre parênteses ([ ]).

  • Se o argumento for fornecido e a sequência for vazia, a função retornará a cadeia de caracteres de comprimento zero.

  • Se o nó designado não tiver nome, por ser um nó de documento, um comentário ou um nó de texto, a função retornará a cadeia de caracteres de comprimento zero.

Exemplos

Este tópico fornece exemplos de XQuery em relação a instâncias XML armazenadas em várias colunas de tipo xml no banco de dados AdventureWorks.

R. Recuperar o nome local de um nó específico

A consulta a seguir é especificada em uma instância XML não digitada. A expressão de consulta, local-name(/ROOT[1]), recupera a parte do nome local do nó especificado.

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

A consulta a seguir é especificada contra a coluna Instructions, uma coluna xml digitada, da tabela ProductModel. A expressão, local-name(/AWMI:root[1]/AWMI:Location[1]), retorna o nome local, Location, do nó 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. Usando o local-name sem argumento em um predicado

A consulta a seguir é especificada na coluna Instructions, coluna xml digitada, da tabela ProductModel. A expressão retorna todos os filhos de elementos do <root> elemento cujo nome local parte do QName é "Location". A função local-name() é especificada no predicado e não tem argumentos O nó de contexto é usado pela função.

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  

A consulta retorna todos os <Location> filhos do <root> elemento.

Confira também

Funções em nós
Função namespace-uri (XQuery)