Bagikan melalui


Fungsi pada Simpul - nama lokal

Berlaku untuk:SQL Server

Mengembalikan bagian lokal dari nama $arg sebagai xs:string yang akan menjadi string panjang nol atau akan 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 akan 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 merupakan node dokumen, komentar, atau simpul teks, fungsi mengembalikan string panjang nol.

Contoh

Topik 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 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 bagian nama lokalnya 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>

Lihat Juga

Fungsi pada Simpul
Fungsi namespace-uri (XQuery)