Dalam pembangunan web, kita selalunya perlu menghantar dan menyimpan beberapa data dalam bentuk xml, dan menukar data xml kepada tatasusunan juga merupakan keperluan yang sangat biasa dalam perniagaan sebenar. Sebagai bahasa pengaturcaraan web yang biasa digunakan, PHP juga menyediakan banyak alat dan fungsi untuk memproses data xml. Artikel ini akan menerangkan cara menukar data xml kepada tatasusunan dalam PHP.
PHP menyediakan penghurai yang dipanggil SimpleXML yang boleh menukar data xml kepada objek PHP. Anda boleh menukar data xml kepada tatasusunan dalam PHP dengan menghantar objek ke tatasusunan.
$xml = <<
< buku>
<name>PHP Programming</name> <author>John Smith</author> <price>15.00</price>
<name>Web Development</name> <author>Jane Doe</author> <price>20.00</price>
XML;
$data = simplexml_load_string($xml);
$array = json_decode(json_encode($data), TRUE);
print_r($array);
?>
Kod di atas mula-mula menggunakan XML heredoc (<<< Cara lain untuk menghuraikan xml ke dalam tatasusunan ialah menggunakan sambungan DOM PHP. DOM menyediakan beberapa API untuk melintasi fail XML Kami akan menggunakan kod berikut: $xml = << < /book> $doc = new DOMDocument(); $books = $doc->getElementsByTagName("book"); foreach ($books as $book) { ); print_r($result); kami Mula-mula gunakan kaedah loadXML() untuk mencipta objek DOMDocument, kemudian dapatkan semua nod buku melalui kaedah getElementsByTagName(), lalui setiap nod buku dan simpan nilai nama, pengarang dan nod harganya ke dalam tatasusunan PHP $result . Apabila memproses fail xml yang besar, penggunaan memori DOM mungkin terlalu tinggi, jadi kami boleh menggunakan penghurai XMLReader, yang boleh digunakan tanpa penggunaan berat Baca dokumen xml tanpa memori dan tukarkannya menjadi tatasusunan PHP. $xml = << $data = array(); while ($reader-> ;read()) { } print_r($data); Kami menggunakan kaedah xml() objek XMLReader untuk membaca data xml ke dalamnya dan menggunakan gelung sementara untuk membaca secara berulang setiap Nod buku menyimpan nilai nod anaknya dalam tatasusunan PHP $data. Di atas ialah kod dan langkah khusus untuk menukar data xml kepada tatasusunan PHP menggunakan tiga kaedah. Apabila kami perlu memproses data xml, kami boleh memilih untuk menggunakan alat penghurai yang berbeza untuk menyesuaikan diri dengan keperluan dan keperluan prestasi yang berbeza. Atas ialah kandungan terperinci Bagaimana untuk menukar xml ke array dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
<name>PHP Programming</name>
<author>John Smith</author>
<price>15.00</price>
<name>Web Development</name>
<author>Jane Doe</author>
<price>20.00</price>
XML;
$doc->loadXML($xml);
$result = array();
$item = array( "name" => $book->getElementsByTagName("name")->item(0)->nodeValue,
"author" => $book->getElementsByTagName("author")->item(0)->nodeValue,
"price" => $book->getElementsByTagName("price")->item(0)->nodeValue
array_push($result, $item);
}
?>
< buku> <name>PHP Programming</name>
<author>John Smith</author>
<price>15.00</price>
<name>Web Development</name>
<author>Jane Doe</author>
<price>20.00</price>
XML;
$reader = new XMLReader();
$reader->xml($xml);
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'book') { $book = array();
while ($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT) {
$name = $reader->name;
$reader->read();
$book[$name] = $reader->value;
} elseif ($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == 'book') {
array_push($data, $book);
break;
}
}
}
?>