<p>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. </p>
<p>Apakah dokumen XML? </p>
<p>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. </p>
<p>Contohnya: </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:xml;toolbar:false;'><book genre="mystery">
<title>The Hound of the Baskervilles</title>
<author>Arthur Conan Doyle</author>
<price>5.99</price>
</book></pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Di sini <code>book</code> ialah teg, <code>genre</code> ialah atribut dan <code>The Hound of the Baskervilles</code> ialah kandungan. Dokumen XML boleh mengandungi sebarang bilangan tag, atribut dan kandungan. </p><p>Bagaimana untuk memadankan dokumen XML menggunakan ungkapan biasa PHP? </p><p>Dalam PHP, anda boleh menggunakan fungsi <code>preg_match()</code> untuk memadankan dokumen XML. Fungsi ini mengambil tiga parameter: ungkapan biasa, rentetan untuk dipadankan dan tatasusunan pilihan untuk menyimpan hasil padanan. </p><p>Berikut ialah contoh yang menunjukkan cara menggunakan ungkapan biasa untuk memadankan teg dalam dokumen XML: </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$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);</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Outputnya adalah seperti berikut: </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Array
(
[0] => <book>
[1] => book
)</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Ungkapan biasa di sini Formula <code>/<([a-zA-Z0-9]+)>/</code> boleh memadankan teg dalam dokumen XML. <code>([a-zA-Z0-9]+)</code> bermaksud memadankan satu atau lebih huruf besar dan huruf kecil serta aksara angka. <code><</code> dan <code>></code> mewakili permulaan dan penghujung teg. </p><p>Semasa proses pemadanan, fungsi <code>preg_match()</code> mencari subrentetan yang sepadan dengan ungkapan biasa dalam rentetan dan menyimpan hasil yang sepadan dalam tatasusunan <code>$matches</code>. <code>$matches[0]</code> mewakili keseluruhan subrentetan yang mematuhi ungkapan biasa dan <code>$matches[1]</code> mewakili subrentetan dalam kurungan pertama dalam ungkapan biasa. </p><p>Berikut ialah beberapa ungkapan biasa lain yang biasa digunakan: </p><p> Atribut yang sepadan: </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$pattern = '/([a-zA-Z]+)="([^"]+)"/';
preg_match($pattern, $xml, $matches);
print_r($matches);</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Outputnya adalah seperti berikut: </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Array
(
[0] => genre="mystery"
[1] => genre
[2] => mystery
)</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Ungkapan biasa di sini<code>/([a-zA-Z]+)="([^"]+)"/</code>Boleh memadankan atribut dalam dokumen XML. <code>([a-zA-Z]+)</code> bermaksud memadankan satu atau lebih huruf besar dan huruf kecil, <code>="</code> bermaksud permulaan atribut, <code>([^"]+)</code> bermaksud memadankan mana-mana aksara kecuali petikan berganda dan <code>"</code> bermaksud penghujung atribut. </p><p> Kandungan yang sepadan: </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$pattern = '/<title>([^<]+)</title>/';
preg_match($pattern, $xml, $matches);
print_r($matches);</pre><div class="contentsignin">Salin selepas log masuk</div></div><p> Hasil output adalah seperti berikut: </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Array
(
[0] => <title>The Hound of the Baskervilles</title>
[1] => The Hound of the Baskervilles
)</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Ungkapan biasa <code>/<title>([^<]+)</title>/</code> di sini boleh memadankan kandungan teg <code><title></code> dalam XML dokumen. <code>([^<]+)</code> bermaksud memadankan mana-mana aksara kecuali kurang daripada tanda, <code></title></code> bermaksud memadankan penghujung tag <code></title></code>. </p>
<p>Ringkasan</p>
<p>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. </p>
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!