Dela via


Funktioner på noder – lokalt namn

Gäller för:SQL Server

Returnerar den lokala delen av namnet på $arg som en xs:string som antingen är strängen med noll längd eller har den lexikala formen av en xs:NCName. Om argumentet inte anges är standardinställningen kontextnoden.

Syntax

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

Arguments

$arg

Nodnamn vars lokala namndel hämtas.

Anmärkningar

  • I SQL Server fn:local-name() kan utan argument endast användas i kontexten för ett kontextberoende predikat. Mer specifikt kan den bara användas inom hakparenteser ([ ]).

  • Om argumentet anges och är den tomma sekvensen returnerar funktionen strängen med noll längd.

  • Om målnoden inte har något namn, eftersom det är en dokumentnod, en kommentar eller en textnod, returnerar funktionen strängen med noll längd.

Examples

Den här artikeln innehåller XQuery-exempel mot XML-instanser som lagras i olika xml-typkolumner i AdventureWorks-databasen.

A. Hämta det lokala namnet på en specifik nod

Följande fråga anges mot en otypad XML-instans. Frågeuttrycket , local-name(/ROOT[1]), hämtar den lokala namndelen av den angivna noden.

DECLARE @x AS XML;

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

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

Följande fråga anges mot kolumnen Instruktioner, en typinskriven XML-kolumn, i tabellen ProductModel. Uttrycket , local-name(/AWMI:root[1]/AWMI:Location[1]), returnerar det lokala namnet, Location, för den angivna noden.

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. Använd lokalt namn utan argument i ett predikat

Följande fråga anges mot kolumnen Instruktioner, skrivet xml-kolumn , i tabellen ProductModel. Uttrycket returnerar alla element underordnade elementet <root> vars lokala namndel i QName är ."Location" Funktionen local-name() anges i predikatet och har inga argument Kontextnoden används av funktionen.

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;

Frågan returnerar alla <Location> element underordnade element i elementet <root> .