PHP dalam tindakan: Mengekstrak data daripada dokumen XML menggunakan XPath

PHPz
Lepaskan: 2023-06-13 22:04:01
asal
1660 orang telah melayarinya

XPath ialah alat yang sangat berguna apabila bekerja dengan data XML menggunakan PHP. XPath ialah bahasa untuk mencari elemen dalam dokumen XML. Ia membantu pembangun mengekstrak data yang diperlukan daripada dokumen XML dengan cepat dan mudah.

Dalam artikel ini, kami akan memperkenalkan konsep asas XPath dan menerangkan secara terperinci cara menggunakan XPath dalam PHP. Kami akan menunjukkan cara menggunakan XPath untuk mengekstrak data daripada dokumen XML dan membina aplikasi PHP mudah untuk menunjukkan kuasa XPath.

Apakah itu XPath?

XPath ialah bahasa untuk mencari nod dalam dokumen XML. Ia menggunakan ungkapan laluan untuk menerangkan elemen dan atribut dalam dokumen. Ekspresi XPath adalah berdasarkan struktur dokumen XML dan digunakan untuk memilih nod atau satu set nod.

XPath ialah piawaian bebas, diseragamkan oleh W3C. Ekspresi XPath boleh digunakan dalam banyak bahasa pengaturcaraan, termasuk PHP.

Sintaks ungkapan XPath

Ekspresi XPath menggunakan ungkapan laluan untuk menerangkan elemen dan atribut XML. Ungkapan laluan terdiri daripada jujukan nod, pengendali hubungan dan predikat.

Berikut ialah beberapa sintaks asas ungkapan XPath:

  • / : Pilih elemen akar
  • // : Pilih elemen pada sebarang kedudukan
  • . : Pilih nod semasa
  • .. : Pilih nod induk
  • @ : Pilih atribut

Predikat dalam XPath membolehkan kami memilih nod tertentu. Berikut ialah beberapa contoh predikat:

  • [id]: Pilih elemen dengan atribut id
  • [position()]: Pilih elemen yang kedudukan elemennya memenuhi syarat

XPath menyokong berbilang pengendali, seperti pengendali logik, predikat yang sepadan, pengendali aritmetik, dsb.

XPath untuk PHP

Dalam PHP, kita boleh menggunakan sambungan DOM untuk menghuraikan dokumen XML dan menggunakan ungkapan XPath untuk mencari dan mengubah suai nod dokumen.

Berikut ialah skrip PHP asas untuk memilih nod dalam dokumen XML:

$xml = new DOMDocument();
$xml->load("products. xml" );

$xpath = DOMXPath baharu($xml);
$nodes = $xpath->query("//name");

foreach ($nod sebagai $ nod) {

echo $node->nodeValue . "
Salin selepas log masuk

";
}

Kod di atas membaca dokumen XML menggunakan kelas DOMDocument dan kemudian melaksanakan pertanyaan XPath menggunakan kelas DOMXPath. Dalam contoh ini kita menanyakan Semua namakan elemen dalam dokumen dan gelungkan nilai nod setiap elemen

Contoh XPath

Sekarang, kami akan menunjukkan contoh yang lebih kompleks menggunakan XPath untuk mengekstrak data daripada dokumen XML >

Kami akan menggunakan dokumen XML berikut, yang mengandungi beberapa maklumat buku:



<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
Salin selepas log masuk


<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2005</year>
<price>29.99</price>
Salin selepas log masuk

< ;/book>


<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
Salin selepas log masuk


Sekarang mari kita anggap kita ingin menanyakan Semua buku dengan kategori "memasak" dan mengeluarkan tajuk dan harganya untuk melakukan ini, kita boleh menulis kod PHP berikut:

$xml = new DOMDocument();

$xml->load .xml");

$xpath = DOMXPath baharu($xml);

$nodes = $xpath->query("//book[@category='cooking']" );

foreach ($nod as $node) {

$title = $xpath->query("title", $node)->item(0)->nodeValue;
$price = $xpath->query("price", $node)->item(0)->nodeValue;
echo "Title: $title, Price: $price
Salin selepas log masuk
";

}

Kod di atas berfungsi dengan menghantar ungkapan XPath dalam kaedah pertanyaan Cari nod yang memenuhi kriteria dan gunakan gelung for untuk melelaran melalui semua nod. Untuk setiap nod, kami menggunakan pertanyaan XPath untuk mengekstrak atribut tajuk dan harga.

Dalam contoh ini, kami menggunakan predikat [@category='cooking'] untuk memilih elemen buku yang atribut kategorinya adalah memasak dan menggunakan $xpath->query("title", $node)- >item(0)->nodeValue mengekstrak tajuk. Begitu juga, kami menggunakan $xpath->query("price", $node)->item(0)->nodeValue untuk mengekstrak harga.

Kesimpulan

XPath menyediakan kaedah yang berkuasa untuk mengekstrak data dan mencari nod daripada dokumen XML. Dalam PHP, kita boleh menggunakan sambungan DOM untuk menghuraikan fail XML dan XPath untuk bertanya dan mengubah suai nod. Ini menjadikan bekerja dengan data XML lebih mudah dan lebih cekap, menjadikannya penyelesaian ideal untuk memproses sejumlah besar data XML dengan cepat dan cekap.

Atas ialah kandungan terperinci PHP dalam tindakan: Mengekstrak data daripada dokumen XML menggunakan XPath. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan