Compartilhar via


Funções em nós – nome local

Aplica-se:SQL Server

Retorna a parte local do nome de $arg como uma xs:string cadeia de caracteres de comprimento zero ou tem 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 do nó cuja parte de nome local é 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ó de destino não tiver nome, porque é 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 artigo fornece exemplos XQuery em 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 AS 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. Usar nome local 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 do <root> elemento cujo nome local parte do QName é ."Location" A local-name() função é 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.