Sdílet prostřednictvím


Funkce na uzlech – místní název

platí pro:SQL Server

Vrátí místní část názvu $arg jako xs:string řetězec nulové délky nebo má lexikální formu xs:NCName. Pokud argument není zadaný, výchozí je kontextový uzel.

Syntaxe

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

Arguments

$arg

Název uzlu, jehož část s místním názvem je načtena.

Poznámky

  • V SQL Serveru fn:local-name() lze bez argumentu použít pouze v kontextu predikátu závislého na kontextu. Konkrétně se dá použít pouze uvnitř hranatých závorek ([ ]).

  • Pokud je argument zadán a je prázdná sekvence, vrátí funkce řetězec nulové délky.

  • Pokud cílový uzel nemá žádný název, protože se jedná o uzel dokumentu, komentář nebo textový uzel, vrátí funkce řetězec nulové délky.

Examples

Tento článek obsahuje příklady XQuery pro instance XML, které jsou uloženy v různých sloupcích typu XML v databázi AdventureWorks.

A. Načtení místního názvu konkrétního uzlu

Následující dotaz je určen pro netypovou instanci XML. Výraz dotazu local-name(/ROOT[1])načte část místního názvu zadaného uzlu.

DECLARE @x AS XML;

SET @x = '<ROOT><a>111</a></ROOT>';

SELECT @x.query('local-name(/ROOT[1])');
-- result = ROOT

Následující dotaz je určen pro sloupec Pokyny, typ xml sloupec tabulky ProductModel. Výraz vrátí local-name(/AWMI:root[1]/AWMI:Location[1])místní název Locationzadaného uzlu.

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. Použití místního názvu bez argumentu v predikátu

Následující dotaz je určen pro sloupec Pokyny, typ xml sloupec tabulky ProductModel. Výraz vrátí všechny podřízené prvky elementu<root>, jehož místní název část QName je ."Location" Funkce local-name() je zadaná v predikátu a nemá žádné argumenty. Funkce ho používá.

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;

Dotaz vrátí všechny podřízené <Location> prvky elementu <root> .