Rumah > Artikel > pembangunan bahagian belakang > Ungkapan biasa PHP dalam tindakan: memadankan dokumen XML
Dengan perkembangan Internet, dokumen XML menjadi semakin biasa, jadi kita perlu memahami cara menggunakan ungkapan biasa untuk memadankan kandungan dalam dokumen XML. Artikel ini akan memperkenalkan anda kepada aplikasi praktikal ungkapan biasa PHP untuk membantu pembangun memproses dan menganalisis dokumen XML dengan lebih baik.
Apakah dokumen XML?
XML (Extensible Markup Language) ialah bahasa penanda yang digunakan untuk menyimpan dan menghantar data. Dokumen XML terdiri daripada tag, atribut dan kandungan. Teg ialah perihalan yang digunakan untuk mengenal pasti data, atribut ialah beberapa maklumat khas dalam teg, dan kandungan ialah data yang diterangkan oleh teg.
Contohnya:
<book genre="mystery"> <title>The Hound of the Baskervilles</title> <author>Arthur Conan Doyle</author> <price>5.99</price> </book>
Di sini book
ialah teg, genre
ialah atribut dan The Hound of the Baskervilles
ialah kandungan. Dokumen XML boleh mengandungi sebarang bilangan tag, atribut dan kandungan.
Bagaimana untuk memadankan dokumen XML menggunakan ungkapan biasa PHP?
Dalam PHP, anda boleh menggunakan fungsi preg_match()
untuk memadankan dokumen XML. Fungsi ini mengambil tiga parameter: ungkapan biasa, rentetan untuk dipadankan dan tatasusunan pilihan untuk menyimpan hasil padanan.
Berikut ialah contoh yang menunjukkan cara menggunakan ungkapan biasa untuk memadankan teg dalam dokumen XML:
$xml = '<book genre="mystery"> <title>The Hound of the Baskervilles</title> <author>Arthur Conan Doyle</author> <price>5.99</price> </book>'; $pattern = '/<([a-zA-Z0-9]+)>/'; preg_match($pattern, $xml, $matches); print_r($matches);
Outputnya adalah seperti berikut:
Array ( [0] => <book> [1] => book )
Ungkapan biasa di sini Formula /9e57713c5d37d2d6d4d698166f96244f/
boleh memadankan teg dalam dokumen XML. ([a-zA-Z0-9]+)
bermaksud memadankan satu atau lebih huruf besar dan huruf kecil serta aksara angka. 5f638dd60430fe95c48036c196d57462
mewakili permulaan dan penghujung teg.
Semasa proses pemadanan, fungsi preg_match()
mencari subrentetan yang sepadan dengan ungkapan biasa dalam rentetan dan menyimpan hasil yang sepadan dalam tatasusunan $matches
. $matches[0]
mewakili keseluruhan subrentetan yang mematuhi ungkapan biasa dan $matches[1]
mewakili subrentetan dalam kurungan pertama dalam ungkapan biasa.
Berikut ialah beberapa ungkapan biasa lain yang biasa digunakan:
Atribut yang sepadan:
$pattern = '/([a-zA-Z]+)="([^"]+)"/'; preg_match($pattern, $xml, $matches); print_r($matches);
Outputnya adalah seperti berikut:
Array ( [0] => genre="mystery" [1] => genre [2] => mystery )
Ungkapan biasa di sini/([a-zA-Z]+)="([^"]+)"/
Boleh memadankan atribut dalam dokumen XML. ([a-zA-Z]+)
bermaksud memadankan satu atau lebih huruf besar dan huruf kecil, ="
bermaksud permulaan atribut, ([^"]+)
bermaksud memadankan mana-mana aksara kecuali petikan berganda dan "
bermaksud penghujung atribut.
Kandungan yang sepadan:
$pattern = '/<title>([^<]+)</title>/'; preg_match($pattern, $xml, $matches); print_r($matches);
Hasil output adalah seperti berikut:
Array ( [0] => <title>The Hound of the Baskervilles</title> [1] => The Hound of the Baskervilles )
Ungkapan biasa /b2386ffb911b14667cb8f0f91ea547a7([^5fdde8e76f2e6499112bdf9087bded19/
di sini boleh memadankan kandungan teg b2386ffb911b14667cb8f0f91ea547a7
dalam XML dokumen. ([^42b2850e3af67c200fbb56aaf08ff2bc
bermaksud memadankan penghujung tag 6e916e0f7d1e588d4f442bf645aedb2f
.
Ringkasan
Ekspresi biasa PHP ialah alat yang sangat berguna apabila memproses dokumen XML. Dengan menggunakan ungkapan biasa, kami boleh memadankan, mengekstrak dan memproses data dengan mudah dalam dokumen XML. Walau bagaimanapun, perlu diingatkan bahawa ungkapan biasa tidak begitu cekap. Apabila berurusan dengan dokumen XML yang besar, adalah disyorkan untuk menggunakan penghurai XML khusus untuk memproses data.
Atas ialah kandungan terperinci Ungkapan biasa PHP dalam tindakan: memadankan dokumen XML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!