Funktionen für Knoten – local-name
Gilt für: SQL Server
Gibt den lokalen Teil des Namens von $arg als xs:string zurück, der entweder die leere Zeichenfolge ist oder die lexikalische Form eines xs:NCName hat. Wenn das Argument nicht bereitgestellt wird, ist der Standardwert der Kontextknoten.
Syntax
fn:local-name() as xs:string
fn:local-name($arg as node()?) as xs:string
Argumente
$arg
Knotenname, dessen lokaler Namensanteil abgerufen wird.
Hinweise
In SQL Server kann fn:local-name() ohne Argument nur im Kontext eines kontextabhängigen Prädikats verwendet werden. Insbesondere kann die Funktion nur innerhalb von Klammern (
[ ]
) verwendet werden.Wenn das Argument angegeben wird und wenn es die leere Sequenz ist, gibt die Funktion die Zeichenfolge mit der Länge null zurück.
Wenn der Zielknoten keinen Namen besitzt, weil es sich um einen Dokumentknoten, einen Kommentar oder einen Textknoten handelt, gibt die Funktion die Zeichenfolge mit der Länge null zurück.
Beispiele
Dieses Thema enthält XQuery-Beispiele für XML-Instanzen, die in verschiedenen XML-Typspalten in der AdventureWorks-Datenbank gespeichert sind.
A. Abrufen des lokalen Namens eines bestimmten Knotens
Die folgende Abfrage wird für eine nicht typisierte XML-Instanz angegeben. Der Abfrageausdruck local-name(/ROOT[1])
ruft den lokalen Namensanteil des angegebenen Knotens ab.
declare @x xml
set @x='<ROOT><a>111</a></ROOT>'
SELECT @x.query('local-name(/ROOT[1])')
-- result = ROOT
Die folgende Abfrage wird für die Instructions-Spalte, eine typisierte xml-Spalte, der ProductModel-Tabelle angegeben. Der Ausdruck local-name(/AWMI:root[1]/AWMI:Location[1])
gibt den lokalen Namen (Location
) des angegebenen Knotens zurück.
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. Verwenden von local-name ohne Argument in einem Prädikat
Die folgende Abfrage wird für die Spalte "Anweisungen", "XML-Spalte" der Tabelle "ProductModel" angegeben. Der Ausdruck gibt alle untergeordneten Elemente des <root
> Elements zurück, dessen lokaler Nameteil des QName "Location" lautet. Die funktion local-name() wird im Prädikat angegeben und hat keine Argumente Der Kontextknoten wird von der Funktion verwendet.
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
Die Abfrage gibt alle <Location
> untergeordneten Elemente des <root
> Elements zurück.