Bagikan melalui


Fungsi pada simpul - nama lokal

Berlaku untuk:SQL Server

Mengembalikan bagian lokal dari nama $arg sebagai xs:string string panjang nol, atau memiliki bentuk leksikal dari xs:NCName. Jika argumen tidak disediakan, defaultnya adalah simpul konteks.

Sintaks

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

Argumen

$arg

Nama node yang bagian nama lokalnya diambil.

Keterangan

  • Di SQL Server, fn:local-name() tanpa argumen hanya dapat digunakan dalam konteks predikat tergantung konteks. Secara khusus, itu hanya dapat digunakan di dalam tanda kurung ([ ]).

  • Jika argumen disediakan dan merupakan urutan kosong, fungsi mengembalikan string panjang nol.

  • Jika simpul target tidak memiliki nama, karena itu adalah simpul dokumen, komentar, atau simpul teks, fungsi mengembalikan string panjang nol.

Contoh

Artikel ini menyediakan contoh XQuery terhadap instans XML yang disimpan di berbagai kolom jenis xml di database AdventureWorks.

J. Mengambil nama lokal simpul tertentu

Kueri berikut ditentukan terhadap instans XML yang tidak dititip. Ekspresi kueri, local-name(/ROOT[1]), mengambil bagian nama lokal dari simpul yang ditentukan.

DECLARE @x AS XML;

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

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

Kueri berikut ditentukan terhadap kolom Instruksi, kolom xml yang ditik, dari tabel ProductModel. Ekspresi, local-name(/AWMI:root[1]/AWMI:Location[1]), mengembalikan nama lokal, Location, dari simpul yang ditentukan.

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. Menggunakan nama lokal tanpa argumen dalam predikat

Kueri berikut ditentukan terhadap kolom Instruksi, kolom xml yang ditik, dari tabel ProductModel. Ekspresi mengembalikan semua turunan elemen elemen <root> yang nama lokalnya bagian dari QName adalah ."Location" Fungsi local-name() ditentukan dalam predikat dan tidak memiliki argumen Simpul konteks digunakan oleh fungsi .

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;

Kueri mengembalikan semua <Location> turunan elemen elemen <root> .