Share via


Functies op knooppunten - lokale naam

Van toepassing op:SQL Server

Retourneert het lokale deel van de naam van $arg als een tekenreeks xs:string met de lengte nul of de lexicale vorm van een xs:NCName. Als het argument niet is opgegeven, is de standaardinstelling het contextknooppunt.

Syntaxis

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

Arguments

$arg

Knooppuntnaam waarvan het onderdeel lokale naam wordt opgehaald.

Opmerkingen

  • In SQL Server fn:local-name() kan zonder argument alleen worden gebruikt in de context van een contextafhankelijk predicaat. Het kan met name alleen tussen vierkante haken ([ ]) worden gebruikt.

  • Als het argument wordt opgegeven en de lege reeks is, retourneert de functie de tekenreeks met lengte nul.

  • Als het doelknooppunt geen naam heeft, omdat het een documentknooppunt, een opmerking of een tekstknooppunt is, retourneert de functie de tekenreeks met lengte nul.

Voorbeelden

Dit artikel bevat XQuery-voorbeelden voor XML-exemplaren die zijn opgeslagen in verschillende xml-typekolommen in de AdventureWorks-database .

Eén. Lokale naam van een specifiek knooppunt ophalen

De volgende query wordt opgegeven voor een niet-getypt XML-exemplaar. Met de query-expressie wordt local-name(/ROOT[1])het lokale naamgedeelte van het opgegeven knooppunt opgehaald.

DECLARE @x AS XML;

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

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

De volgende query wordt opgegeven voor de kolom Instructies, een getypte XML-kolom, van de tabel ProductModel. De expressie, local-name(/AWMI:root[1]/AWMI:Location[1])retourneert de lokale naam, Locationvan het opgegeven knooppunt.

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. Lokale naam zonder argument gebruiken in een predicaat

De volgende query wordt opgegeven voor de kolom Instructies, de getypte XML-kolom , van de tabel ProductModel. De expressie retourneert alle element onderliggende elementen van het element waarvan de <root> lokale naam deel uitmaakt van de QName."Location" De local-name() functie wordt opgegeven in het predicaat en heeft geen argumenten Het contextknooppunt wordt gebruikt door de functie.

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;

De query retourneert alle <Location> onderliggende elementen van het <root> element.