php

Penggunaan xpath () dalam PHP

Penggunaan xpath () dalam PHP
Dokumen XML digunakan untuk menyimpan sejumlah kecil data, dan kadang-kadang diperlukan untuk membaca kandungan tertentu dokumen XML berdasarkan nilai jalur menggunakan skrip PHP. Fungsi xpath () digunakan untuk mengurai kandungan dokumen XML. Fungsi ini boleh digunakan dengan menggunakan simplexml_load_file () berfungsi atau dengan membuat objek dari SimpleXMLElement kelas. Fungsi xpath () dapat digunakan untuk membaca nilai simpul XML tertentu yang ditunjukkan dalam tutorial ini.

Sintaks:

Sintaks fungsi xpath () diberikan di bawah.

array xpath (rentetan $ path)

Fungsi ini mempunyai satu argumen yang mengambil nilai jalur, dan jika jalur tersebut ada di mana-mana simpul dokumen XML, maka nilai simpul akan dikembalikan sebagai array. Penggunaan fungsi yang berbeza telah dijelaskan di bahagian seterusnya dari tutorial ini.

Buat dokumen XML:

Buat fail XML bernama produk.xml dengan kandungan berikut di lokasi di mana fail PHP akan dibuat untuk menguraikan fail ini.




MN-56345
DELL
Monitor Dell 15 inci
700


HD-34278
SAMSUNG
HDD Samsung 1 TB
520


MS-67457
LOGITECH
Tetikus Tanpa Wayar Logitech
100


MN-76453
HP
Monitor HP 14 inci
750

Penggunaan simplexml_load_file () fungsi:

Fungsi xpath () dengan objek yang dibuat oleh fungsi simplexml_load_file () telah ditunjukkan di bahagian tutorial ini.

Contoh-1: Baca nilai nod XML tertentu

Contoh berikut menunjukkan cara membaca kandungan nilai node tertentu dari dokumen XML dengan menentukan jalan fungsi xpath (). Pemboleh ubah objek, $ xml dicipta untuk membaca nilai simpul tertentu dari produk.xml fail. '/ PRODUK / PRODUK / JENAMA' digunakan dalam xpath () untuk membaca semua nilai nod BRAND. '/ PRODUK / PRODUK' digunakan dalam xpath () untuk membaca semua nilai simpul anak PRODUK nod. untuk setiap gelung digunakan untuk mencetak nilai NAMA dan HARGA nod.

// Buat objek untuk membaca fail XML
$ xml = simplexml_load_file ('produk.xml ');
// Cari semua nilai nod BRAND
$ brand = $ xml-> xpath ('/ PRODUK / PRODUK / JENAMA');
// Cetak nilai array
gema "

Senarai nama jenama adalah:

";
foreach (jenama $ sebagai $ name)
gema "$ name
";

// Cari semua nilai nod PRODUK
$ produk = $ xml-> xpath ('/ PRODUK / PRODUK');
gema "

Senarai nama dan harga produk:

";
gema "";
gema "";
// Cetak nilai array
foreach (produk $ sebagai produk $)
gema "";

gema "
NamaHarga
$ produk-> NAMA $$ produk-> HARGA
";
?>

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip dari pelayan.

Contoh-2: Baca nilai nod XML tertentu berdasarkan keadaan

Contoh berikut menunjukkan cara membaca nilai nod tertentu berdasarkan keadaan menggunakan fungsi xpath (). Nilai jalan, '/ PRODUK / PRODUK [HARGA> 600]', akan mencari nilai semua nod anak dari PRODUK simpul di mana nilai HARGA nod lebih daripada 600. untuk setiap gelung digunakan untuk mencetak nilai NAMA dan HARGA nod.

// Buat objek untuk membaca fail XML
$ xml = simplexml_load_file ('produk.xml ');
// Cari produk dengan nilai harganya lebih dari 600
$ produk = $ xml-> xpath ('/ PRODUK / PRODUK [HARGA> 600]');
gema "

Senarai nama produk dan harga yang harganya melebihi 600:

";
gema "";
gema "";
// Cetak nilai array
foreach (produk $ sebagai produk $)
gema "";

gema "
NamaHarga
$ produk-> NAMA $$ produk-> HARGA
";
?>

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip dari pelayan.

Contoh-3: Baca nilai nod XML tertentu berdasarkan atribut

Contoh berikut menunjukkan cara membaca nilai node tertentu berdasarkan nilai atribut node spesifik dokumen XML dengan menggunakan fungsi xpath (). Nilai jalan, '/ PRODUK / PRODUK [@ kategori = "Monitor"]' akan mencari nilai semua nod anak dari produk simpul, di mana nilai atribut kategori berada Pantau. untuk setiap gelung digunakan untuk mencetak nilai JENAMA, dan HARGA nod.

// Buat objek untuk membaca fail XML
$ xml = simplexml_load_file ('produk.xml ');
// Cari produk di mana nilai atribut kategori adalah 'Monitor'
$ produk = $ xml-> xpath ('/ PRODUK / PRODUK [@ kategori = "Monitor"]');
gema "

Senarai jenama produk, nama dan harga berdasarkan kategori (Monitor):

";
gema "";
gema "";
// Cetak nilai array
foreach (produk $ sebagai produk $)
gema "";

gema "
JenamaNamaHarga
$ produk-> JENAMA$ produk-> NAMA $$ produk-> HARGA
";
?>

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip dari pelayan.

Penggunaan SimpleXMLElement kelas:

Kegunaan fungsi xpath () dengan membuat objek kelas SimpleXMLElement telah ditunjukkan di bahagian tutorial ini.

Contoh-4: Penggunaan xpath () dengan menentukan kandungan XML dalam pemboleh ubah

Contoh berikut menunjukkan cara membaca nilai nod dokumen XML yang dinyatakan dalam pemboleh ubah dan bukannya fail. Kandungan XML disimpan di $ xml_data pemboleh ubah. "/ Pelanggan / pelanggan" digunakan sebagai nilai argumen fungsi xpath () untuk membaca semua nilai nod anak dari pelanggan simpul. Seterusnya, a untuk setiap gelung digunakan untuk mencetak nilai nama simpul. "/ Pelanggan / pelanggan [@ department = 'HR']" digunakan sebagai nilai argumen fungsi xpath () lain untuk membaca semua nilai node anak dari nod pelanggan di mana nilai jabatan atribut adalah HR. Seterusnya, a untuk setiap gelung digunakan untuk mencetak nilai-nilai e-mel simpul.

$ xml_data = <<

Md. Mahbub
[dilindungi e-mel]


Farhana Zaman
[dilindungi e-mel]


XML;
// Tentukan objek untuk membaca data XML
$ xml = SimpleXMLElement baru ($ xml_data);
// Tentukan jalan untuk membaca semua data pelanggan
$ pelanggan = $ xml-> xpath ("/ pelanggan / pelanggan");
// Cetak nama pelanggan
gema "

Senarai nama pelanggan:

";
foreach ($ pelanggan sebagai $ pelanggan)
echo "$ customer-> nama
";

// Tentukan jalan untuk membaca semua data pelanggan jabatan HR
$ pelanggan = $ xml-> xpath ("/ pelanggan / pelanggan [@ department = 'HR']");
// Cetak e-mel pelanggan
gema "

E-mel pelanggan jabatan HR:

";
foreach ($ pelanggan sebagai $ pelanggan)
echo "$ customer-> e-mel
";

?>

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip dari pelayan.

Kesimpulan:

Dua cara yang berbeza menggunakan fungsi xpath () untuk membaca nilai simpul dokumen XML berdasarkan jalur tertentu atau jalan dengan keadaan atau jalan dengan nilai atribut telah dijelaskan dalam tutorial ini dengan menggunakan beberapa contoh.

Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...
Kajian Tetikus Tanpa Wayar Microsoft Sculpt Touch
Saya baru-baru ini membaca mengenai Sentuhan Microsoft Sculpt tetikus tanpa wayar dan memutuskan untuk membelinya. Setelah menggunakannya sebentar, sa...
Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...