Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah sintaks asas untuk suntikan xPath?

Apakah sintaks asas untuk suntikan xPath?

王林
王林ke hadapan
2023-05-26 12:01:541579semak imbas

Pertama sekali, apakah itu xPath: xPath ialah bahasa untuk mencari maklumat dalam xml

xPath mengandungi tujuh jenis nod: elemen, atribut, teks, ruang nama, arahan pemprosesan, ulasan dan Dokumen nod akar. Dokumen XML dihuraikan mengikut struktur pepohon dokumen Akar pepohon dokumen dipanggil nod dokumen atau nod akar.

Apakah sintaks asas untuk suntikan xPath?

Ini ialah kod sumber dokumen xml asas, boleh dilihat daripada kod sumber xml ini bahawa kedai buku ialah nod dokumen (nod akar), buku , tajuk, pengarang, tahun dan harga ialah nod elemen. Nod buku mempunyai empat nod elemen anak: tajuk, pengarang, tahun, harga, dan nod tajuk mempunyai tiga adik beradik: pengarang, tahun, harga. Nod elemen tajuk mempunyai atribut dan nod teks Nod atribut ialah lang dan nilai nod teks ialah HarryPotter.

Terdapat beberapa perihalan perhubungan nod xml di bawah (serupa dengan pepohon dalam struktur data):

Ibu bapa: Induk nod buku ialah kedai buku dan nod buku ialah tajuk, pengarang, tahun, harga Induk nod. (Setiap nod hanya boleh mempunyai satu induk).

Kanak-kanak: buku ialah anak kedai buku, dan anak nod buku ialah anak tajuk, pengarang, tahun dan harga.

(Nod elemen boleh mempunyai sifar, satu atau lebih anak).

Elemen adik-beradik bagi tajuk termasuk pengarang, tahun dan harga Elemen ini mempunyai nod induk yang sama, serupa dengan nod adik-beradik dalam struktur pokok. (Nod boleh mempunyai sifar, satu atau lebih adik beradik).

Nenek moyang: ibu bapa nod, ibu bapa ibu bapa, ibu bapa ibu bapa ibu bapa (gelung tak terhingga), nenek moyang nod elemen tajuk ialah buku dan kedai buku.

Keturunan: anak nod, anak anak, anak anak (gelung tak terhingga), keturunan nod dokumen kedai buku ialah buku, tajuk, pengarang, tahun, harga, lang.

Ia tidak mencukupi untuk mengetahui perhubungan nod xml Anda juga perlu mengetahui cara xPath menggunakan ungkapan laluan untuk memilih nod atau set nod dalam dokumen. Nod dipilih di sepanjang laluan atau langkah.

Apakah sintaks asas untuk suntikan xPath?

XPath menggunakan ungkapan laluan untuk memilih nod dalam dokumen XML. Nod dipilih dengan mengikut laluan atau langkah. Ungkapan laluan yang paling berguna disenaraikan di bawah:

nama nod: pilih semua hos nod ini

/: pilih daripada nod akar

//: pilih daripada padanan The nod semasa memilih nod dalam dokumen tanpa mengira kedudukannya

.: memilih nod semasa

..: memilih nod induk nod semasa

@: memilih Atribut

Mari kita terus bertanya menggunakan sintaks pertanyaan xpath melalui js

Mula-mula tulis templat fail html tentang panggilan xpath (kod panggilan ditulis ke dalam js), dan kemudian sediakan fail xml untuk pertanyaan.

Kod sumber templat js adalah seperti berikut:

https://www.runoob.com/try/try.php?filename=try_xpath_select_cdnodes

Lihat html ini satu persatu Kod js dalam fail (kerana hanya terdapat kod js)

Apakah sintaks asas untuk suntikan xPath?

Ini ialah fungsi panggilan tak segerak bagi js dalam baris 15 dan 17. Fungsi dname yang diluluskan oleh fungsi pada baris 15 ialah laluan xml, dan fail xml yang diperoleh dikembalikan pada baris 17.

Apakah sintaks asas untuk suntikan xPath?

Sila rujuk baris 20. Pembolehubah xml memperoleh fail XML yang diperolehi selepas melaksanakan fungsi loadXMLDOC. Pembolehubah laluan dalam baris 21 ialah sintaks pertanyaan bagi xpath. Pernyataan if pertama menentukan sama ada ia adalah penyemak imbas IE6 atau di bawah Jika ia adalah penyemak imbas IE6 atau di bawah, selepas mendapatkan tatasusunan nod pertanyaan yang sepadan, nilai dalam tatasusunan dilalui dan dikeluarkan ke halaman.

Apakah sintaks asas untuk suntikan xPath?

Pernyataan if kedua mempunyai proses pelaksanaan yang sama untuk penyemak imbas bukan IE6 dan di bawah, tetapi sintaksnya berbeza sedikit daripada penyata pelayar bukan IE6 dan di bawah penilaian lulus Fungsi digunakan untuk membuat pertanyaan, dan formatnya pada asasnya tetap Mari kita amalkan sintaks yang baru disebut.

Penggantian sintaks pertanyaan hanya memerlukan pengubahsuaian nilai laluan.

Apakah sintaks asas untuk suntikan xPath?

Senaraikan dahulu sintaks yang perlu disoal:

Nota: Jika laluan bermula dengan garis miring ke hadapan (/), laluan ini akan sentiasa Mewakili laluan mutlak kepada elemen!

kedai buku: Pilih semua nod anak elemen kedai buku.

/kedai buku: Pilih kedai buku elemen akar.

kedai buku/buku: Memilih semua elemen buku yang merupakan anak kedai buku.

//buku: Memilih semua elemen anak buku tanpa mengira kedudukannya dalam dokumen.

kedai buku//buku: Memilih semua elemen buku yang merupakan keturunan elemen kedai buku, tidak kira di mana ia berada di bawah kedai buku:.

//@lang: Pilih semua atribut bernama lang.

Menggunakan pertanyaan tunggal ini sahaja mungkin tidak menghasilkan hasil yang diharapkan, dan anda perlu menggabungkannya dengan pernyataan pertanyaan lain. Berikut ialah beberapa sintaks yang perlu dipadankan:

Predikat (gunakan kurungan segi empat sama, untuk mendapatkan hasil pertanyaan yang lebih tepat):

Pilih laluan buku sub-elemen pertama bagi elemen kedai buku ke /kedai buku /buku[1].

/kedai buku/buku[last()]: Pilih elemen buku terakhir yang merupakan elemen kanak-kanak kedai buku.

/kedai buku/buku[last()-1]: Memilih elemen buku kedua yang merupakan elemen kanak-kanak kedai buku.

/kedai buku/buku[posisi()

//title[@lang]: Memilih semua elemen tajuk dengan atribut bernama lang.

//title[@lang='eng']: Memilih semua elemen tajuk yang mempunyai atribut lang dengan nilai eng.

/kedai buku/buku[price>35.00]: Pilih semua elemen buku elemen kedai buku dan nilai elemen harga mestilah lebih daripada 35.00.

/kedai buku/buku[price>35.00]/tajuk: Pilih semua elemen tajuk elemen buku dalam elemen kedai buku dan nilai elemen harga mestilah lebih besar daripada 35.00.

Pilih nod yang tidak diketahui:

*: Padankan mana-mana nod elemen.

@*: Padan dengan mana-mana nod atribut.

nod(): Padan dengan sebarang jenis nod.

Contohnya:

/kedai buku/*: Pilih semua elemen kanak-kanak elemen kedai buku.

//*: Pilih semua elemen dalam dokumen.

//tajuk[@*]: Pilih semua elemen tajuk dengan atribut.

Pilih beberapa laluan:

//buku/tajuk | //buku/harga: Pilih semua elemen tajuk dan harga bagi elemen buku.

//tajuk |. //harga: Pilih semua elemen tajuk dan harga dalam dokumen.

/kedai buku/buku/tajuk |. //harga: Pilih semua elemen tajuk kepunyaan elemen buku elemen kedai buku dan semua elemen harga dalam dokumen

Lihat beberapa contoh pertanyaan :

Soal nilai tajuk buku kedua:/kedai buku/buku[1]/tajuk

Apakah sintaks asas untuk suntikan xPath?

Soal nilai tajuk semua buku :/ kedai buku/buku//tajuk

Apakah sintaks asas untuk suntikan xPath?

Soal nilai semua tajuk dengan atribut lang:/bookstore/book//title[@lang]

Apakah sintaks asas untuk suntikan xPath?

Atas ialah kandungan terperinci Apakah sintaks asas untuk suntikan xPath?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam