Saya mengalami masalah saat mengakses @attribute
bagian dari objek SimpleXML saya. Ketika saya var_dump
seluruh objek, saya mendapatkan output yang benar, dan ketika saya var_dump
sisa objek (tag bersarang), saya mendapatkan output yang benar, tetapi ketika saya mengikuti dokumen dan var_dump
$xml->OFFICE->{'@attributes'}
, saya mendapatkan objek kosong, terlepas dari kenyataan bahwa yang pertama var_dump
dengan jelas menunjukkan bahwa ada atribut ke keluaran.
Adakah yang tahu apa yang saya lakukan salah di sini / bagaimana saya bisa membuat ini berhasil?
Jawaban:
Anda bisa mendapatkan atribut elemen XML dengan memanggil fungsi atribut () pada node XML. Anda kemudian dapat melakukan var_dump nilai hasil dari fungsi tersebut.
Info lebih lanjut di php.net http://php.net/simplexmlelement.attributes
Kode contoh dari halaman itu:
sumber
$b
akan jadiSimpleXMLElement
benda jadiprint_r
danvar_dump
akan memberimu hal-hal aneh. Anda dapat memasukkannya sebagai string (atau apa pun yang Anda suka) untuk menyiasati ini.Coba ini
sumber
attributes()
objek yang sesuai dengan tag yang tepat di XML Anda. Seperti jika sudah<root><tag attr="a">b</tag></root>
maka yang perlu Anda lakukan$xml->tag->attributes()->attr
untuk mengaksesnya.Saya menggunakan sebelumnya berkali-kali untuk mendapatkan
@attributes
seperti di bawah dan itu sedikit lebih lama.Seharusnya lebih mudah dan Anda bisa mendapatkan atribut yang mengikuti format hanya sekaligus:
Cara Standar - Atribut Akses Array (AAA)
Alternatif lainnya adalah:
Format Kanan & Cepat
Format Salah
sumber
$xml->attributes()->{'field'}
,$xml->attributes()->field
, dan$f='field'; $xml->attributes()->$f;
adalah sama. Tidak melihat alasan mengapa satu format yang benar dan yang lainnya salah.Gunakan
SimpleXMLElement::attributes
.Sebenarnya,
get_properties
handler SimpleXMLElement berbohong banyak waktu. Tidak ada properti bernama "@attributes", jadi Anda tidak bisa melakukannya$sxml->elem->{"@attributes"}["attrib"]
.sumber
get_properties
penangan). Sangat menarik.Anda bisa melakukan:
sumber
Jika Anda mencari daftar atribut ini, XPath akan menjadi teman Anda
sumber
Ini membantu saya mengonversi hasil simplexml_load_file ($ file) menjadi Struktur JSON dan mendekodekannya kembali:
sumber
Sayangnya saya memiliki build yang unik (saat ini tidak menggunakan Gentoo) PHP 5.5, dan yang saya temukan adalah itu
adalah satu-satunya solusi yang berhasil. Saya mencoba semua metode Bora di atas, termasuk format 'Right & Quick', dan semuanya gagal.
Fakta bahwa ini adalah format termudah adalah nilai tambah, tetapi tidak senang berpikir saya gila mencoba semua format yang dikatakan orang lain berfungsi.
Njoy untuk apa nilainya (apakah saya menyebutkan bangunan unik?).
sumber