Bagikan melalui


Menentukan Pengujian Node di Jalur Lokasi (SQLXML 4.0)

Berlaku untuk: SQL ServerAzure SQL Database

Pengujian simpul menentukan jenis node yang dipilih oleh langkah lokasi. Setiap sumbu (anak, induk, atribut, atau diri sendiri) memiliki jenis node utama. Untuk sumbu atribut, jenis node utama adalah <atribut> . Untuk sumbu induk, anak, dan diri, jenis node utama adalah <elemen>.

Catatan

Pengujian simpul kartubebas * (misalnya, child::*) tidak didukung.

Tes Node: Contoh 1

Jalur child::Customer lokasi memilih turunan <elemen Pelanggan> dari simpul konteks.

Dalam contoh ini, child adalah sumbu dan Customer merupakan pengujian simpul. Jenis simpul utama untuk sumbu anak adalah <elemen>. Oleh karena itu, pengujian node adalah TRUE jika node <Pelanggan> adalah <node elemen>. Jika simpul konteks tidak <memiliki anak Pelanggan> , sekumpulan simpul kosong dikembalikan.

Tes Node: Contoh 2

Jalur attribute::CustomerID lokasi memilih atribut CustomerID dari simpul konteks.

Dalam contoh, attribute adalah sumbu dan CustomerID merupakan pengujian simpul. Jenis node utama dari sumbu atribut adalah <atribut> . Oleh karena itu, pengujian node adalah TRUE jika CustomerID adalah node< atribut>. Jika simpul konteks tidak memiliki CustomerID, sekumpulan node kosong dikembalikan.

Catatan

Dalam implementasi XPath ini, jika langkah lokasi mengacu pada <elemen> atau <jenis atribut> yang tidak dideklarasikan dalam skema, kesalahan dihasilkan. Ini berbeda dari implementasi XPath di MSXML, yang mengembalikan set simpul kosong.

Sintaks yang disingkat untuk Sumbu

Sintaksis singkatan berikut untuk jalur lokasi didukung:

  • attribute:: dapat disingkat ke @.

    Jalur Customer[@CustomerID="ALFKI"] lokasi sama child::Customer[attribute::CustomerID="ALFKI"]dengan .

  • child:: dapat dihilangkan dari langkah lokasi.

    Dengan demikian, anak adalah sumbu default. Jalur Customer/Order lokasi sama child::Customer/child::Orderdengan .

  • self::node() dapat disingkat menjadi satu periode (.), dan parent::node() dapat disingkat menjadi dua periode (..).