Saya ingin mengonversi XML ke array PHP di bawah ini. Ada saran tentang bagaimana saya bisa melakukan ini?
<aaaa Version="1.0">
<bbb>
<cccc>
<dddd Id="id:pass" />
<eeee name="hearaman" age="24" />
</cccc>
</bbb>
</aaaa>
Jawaban:
Pilihan lain adalah ekstensi SimpleXML (saya percaya itu datang standar dengan sebagian besar pemasangan php.)
http://php.net/manual/en/book.simplexml.php
Sintaksnya terlihat seperti ini untuk contoh Anda
sumber
[CDATA[TEXT]]
elemen di dalamnya dan mereka tidak menguraikan ini. Ini mem-parsingnya sebagaiSimpleXMLElement Object
. Ada solusi untuk itu?mudah!
sumber
TRUE
(biasanya defaultFALSE
) untuk mengubah input JSON ke array asosiatif.Mengubah string XML (
$buffer
) menjadi array yang disederhanakan mengabaikan atribut dan mengelompokkan elemen anak dengan nama yang sama:Hasil:
Jika Anda juga ingin memiliki atribut, mereka tersedia melalui pengkodean / decoding JSON dari SimpleXMLElement. Ini sering merupakan solusi quick'n'dirty yang paling mudah:
Hasil:
Perhatikan bahwa semua metode ini hanya berfungsi di namespace dokumen XML.
sumber
&& (is_countable($node) && 1 === count($node) ? $node = array($node) : 1)
, namun saya punya kesalahan di baris berikutnya:[] operator not supported for strings
.sumber
json_encode
danjson_decode
.$array
variabel Anda , itu mungkin karena CDATA. Untuk mengatasi hal itu, beban XML Anda dengan:new SimpleXMLElement($xml, LIBXML_NOCDATA)
.<?xml version="1.0" encoding="UTF-8"?><note a="b"><body c="d">Hello!</body></note>
. Jalankan kode dan Anda akan melihat bahwa atribut <body>c
hilang! Silakan periksa kode lengkap di sini jika Anda tidak ingin kejutan buruk github.com/gaarf/XML-string-to-PHP-array/blob/master/… atau lihat jawaban saya di bawah stackoverflow.com/a/30234924/828366Terkejut tidak ada yang menyebutkan
xml_parse_into_struct
:sumber
Lihat https://github.com/gaarf/XML-string-to-PHP-array/blob/master/xmlstr_to_array.php
sumber
Metode yang digunakan dalam atribut drop jawaban yang diterima ketika menemukan elemen turunan hanya dengan simpul teks. Sebagai contoh:
Solusi saya (dan saya berharap dapat memberikan pujian di sini karena saya yakin saya mengadaptasi ini dari sesuatu):
sumber
XML Ke Array
Lebih Detail Kunjungi https://github.com/sapankumarmohanty/lamp/blob/master/Crate-XML-2-Array
// Konversi XML ke array dan SOAP XML ke array
sumber
Saya menyukai pertanyaan ini dan beberapa jawaban bermanfaat bagi saya, tetapi saya perlu mengonversi xml ke satu array dominasi, jadi saya akan memposting solusi saya mungkin seseorang membutuhkannya nanti:
sumber