Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar rentetan XML kepada tatasusunan PHP
PHP ialah bahasa pengaturcaraan yang sangat popular yang boleh mengendalikan jenis pembolehubah seperti rentetan dan tatasusunan dengan mudah. Dalam PHP, anda boleh menggunakan rentetan XML sebagai sumber data dan kemudian menukarnya kepada tatasusunan untuk diproses.
Dalam artikel ini, kami akan memperkenalkan kaedah tentang cara menukar rentetan XML kepada tatasusunan PHP.
1. Tukar rentetan XML kepada objek SimpleXmlElement
Dalam PHP, anda perlu menukar rentetan XML kepada objek SimpleXmlElement terlebih dahulu. Untuk melakukan ini, anda boleh menggunakan fungsi terbina dalam PHP simplexml_load_string(). Berikut ialah contoh:
$xml_string = '<root><item><name>PHP</name><year>1995</year></item><item><name>MySQL</name><year>1995</year></item></root>'; $xml = simplexml_load_string($xml_string);
Di sini, $xml_string ialah rentetan XML yang akan ditukar kepada objek SimpleXmlElement. simplexml_load_string() menukar rentetan XML kepada objek SimpleXmlElement dan menyerahkannya kepada pembolehubah $xml.
2. Tukar objek SimpleXmlElement kepada tatasusunan PHP
Seterusnya, anda perlu menukar objek SimpleXmlElement kepada tatasusunan PHP. Ini boleh dicapai menggunakan fungsi terbina dalam PHP json_decode(). Tetapi harus diperhatikan bahawa objek SimpleXmlElement perlu ditukar menjadi rentetan JSON sebelum penukaran. Berikut ialah contoh:
$xml_string = '<root><item><name>PHP</name><year>1995</year></item><item><name>MySQL</name><year>1995</year></item></root>'; $xml = simplexml_load_string($xml_string); $json = json_encode($xml); $array = json_decode($json,TRUE);
Dalam contoh di atas, simplexml_load_string() menukar rentetan XML kepada objek SimpleXmlElement, dan kemudian menggunakan json_encode() untuk menukar objek SimpleXmlElement kepada rentetan JSON. Akhir sekali gunakan json_decode() untuk menukar rentetan JSON kepada tatasusunan PHP.
3. Memproses atribut dalam rentetan XML
Jika rentetan XML mengandungi atribut, anda perlu menggunakan sifat objek SimpleXmlElement untuk mengakses atribut ini. Berikut ialah contoh:
$xml_string = '<root><item name="PHP" year="1995"/><item name="MySQL" year="1995"/></root>'; $xml = simplexml_load_string($xml_string); $array = array(); foreach($xml->item as $item) { $array[] = array( 'name' => (string)$item['name'], 'year' => (int)$item['year'] ); }
Dalam contoh ini, $xml_string mengandungi dua elemen item, setiap satu dengan dua atribut (nama dan tahun). Selepas menukar rentetan XML kepada objek SimpleXmlElement, anda boleh menggunakan foreach() untuk lelaran melalui setiap elemen item dan menggunakan $item['name'] dan $item['year'] untuk mengakses sifat setiap elemen.
Perhatikan bahawa penukaran sifat kepada rentetan dan integer dilakukan melalui hantaran.
4. Memproses ruang nama dalam rentetan XML
Jika ruang nama digunakan dalam rentetan XML, anda perlu menggunakan kaedah ruang nama objek SimpleXmlElement untuk mengakses elemen ini. Berikut ialah contoh:
$xml_string = '<root xmlns="http://www.example.com"><item><name>PHP</name><year>1995</year></item><item><name>MySQL</name><year>1995</year></item></root>'; $xml = simplexml_load_string($xml_string); $namespaces = $xml->getDocNamespaces(); $xml->registerXPathNamespace('ns', $namespaces['']); $items = $xml->xpath('//ns:item'); $array = array(); foreach($items as $item) { $array[] = array( 'name' => (string)$item->name, 'year' => (int)$item->year ); }
Dalam contoh di atas, $xml_string mengandungi dua elemen item dan mentakrifkan ruang nama "http://www.example.com". Mula-mula, gunakan kaedah getDocNamespaces() untuk mendapatkan semua ruang nama dalam XML, dan kemudian gunakan kaedah registerXPathNamespace() untuk menyediakan awalan "ns" untuk ruang nama.
Gunakan kaedah xpath() untuk mencari dokumen XML untuk semua elemen item dengan ruang nama "ns". Kemudian, gunakan foreach() untuk melingkari setiap elemen dan mengakses nilainya menggunakan $item->name dan $item->year.
Ringkasan
Dalam PHP, menukar rentetan XML kepada tatasusunan PHP adalah sangat mudah Anda hanya perlu menggunakan fungsi seperti SimpleXmlElement, json_encode() dan json_decode(). Jika rentetan XML mengandungi atribut atau ruang nama, anda juga perlu menggunakan sifat dan kaedah ruang nama objek SimpleXmlElement.
Saya harap artikel ini bermanfaat kepada anda, terima kasih kerana membaca!
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan XML kepada tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!