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.
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 "
Nama | Harga |
---|---|
$ 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 "
Nama | Harga |
---|---|
$ 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 "
Jenama | Nama | Harga |
---|---|---|
$ 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 = <<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.