Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menukar rentetan XML kepada tatasusunan PHP

Bagaimana untuk menukar rentetan XML kepada tatasusunan PHP

PHPz
Lepaskan: 2023-04-24 13:55:49
asal
648 orang telah melayarinya

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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']
    );
}
Salin selepas log masuk

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
    );
}
Salin selepas log masuk

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!

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