Freigeben über


local-name-Funktion (XQuery)

Gibt den lokalen Anteil des Namens von $arg als xs:string zurück. Dabei handelt es sich um eine Zeichenfolge mit der Länge null oder die lexikalische Form eines xs:NCName-Elements. 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 stellt XQuery-Beispiele für XML-Instanzen bereit, die in verschiedenen Spalten vom xml-Datentyp 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 Instructions-Spalte, eine typisierte xml-Spalte, der ProductModel-Tabelle angegeben. Der Ausdruck gibt alle untergeordneten Elemente des <root>-Elements zurück, deren lokaler Namensbestandteil für den QName "Location" lautet. Die local-name()-Funktion wird im Prädikat angegeben und besitzt 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.

Siehe auch

Verweis

Funktionen für Knoten

Konzepte

namespace-uri-Funktion (XQuery)