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 Zeichenfolge der Länge Null ist oder die lexikalische Form eines xs:NCName aufweist. 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.

Bemerkungen

  • 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 Instructions (typisierte XML-Spalte ) der ProductModel-Tabelle angegeben. Der Ausdruck gibt alle untergeordneten Elemente des <root> Elements zurück, dessen lokaler Namensteil von QName "Location" ist. Die funktion local-name() ist 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 untergeordneten <Location> Elemente des <root> Elements zurück.

Weitere Informationen

Funktionen auf Knoten
namespace-uri-Funktion (XQuery)