XML khá khó khăn khi xem nó lần đầu tiên, đó là cấu trúc nặng dạng cây có thể khá khó hiểu. Đôi khi làm việc với dữ liệu từ tệp XML ở dạng mảng sẽ dễ dàng hơn nhiều. Làm cách nào để chúng tôi chuyển đổi dữ liệu định dạng XML thành một mảng bằng PHP?
Đầu tiên, chúng ta cần xác định một số dữ liệu XML giả cho mục đích của hướng dẫn
XML
Dữ liệu trong XML là một tập hợp nhân viên giả trong một loạt các công ty. Dữ liệu hiển thị tên, họ, email và công ty
Timon
Carson
tempus.non@enimSuspendissealiquet.ca
Erat Vivamus Inc.
Boris
Alexander
erat@risusNuncac.co.uk
Nascetur Ridiculus Corp.
Todd
Anthony
pede.Cum@nuncQuisque.net
Urna Ut Ltd
Leo
Hayes
velit.Pellentesque.ultricies@felispurus.com
Velit Eget Consulting
Edan
Frederick
pellentesque.Sed@magnaPraesent.net
Feugiat LLP
Calvin
Joyce
ultrices.posuere.cubilia@pede.com
Laoreet Lectus Quis Institute
Germane
Gentry
arcu@insodales.net
Commodo Foundation
Barclay
Buckner
vel@dolorquam.ca
Quis Massa Consulting
Glenna
Rollins
mi.lacinia.mattis@condimentumDonec.com
Urna LLP
Blaze
Boyer
eu.ligula@ipsumleo.net
Quisque Company
Grady
Atkinson
luctus@pedeNunc.net
Dui Quis Consulting
Cách đơn giản nhất để đạt được chuyển đổi này là sử dụng một hàm có tên là simplexml_load_string
. Hàm này diễn giải cú pháp XML dưới dạng một chuỗi và chuyển đổi nó thành một loại đối tượng SimpleXMLElement
. Từ kiểu đối tượng, chúng ta có thể sử dụng các hàm tiếp theo như mã hóa và giải mã để chuyển thành mảng
Hãy đi qua những bước này từng bước
Bước 1
Đầu tiên, chúng ta cần định nghĩa XML dưới dạng một chuỗi trong biến $xml
. Thứ hai, chúng ta gọi hàm simplexml_load_string
, chuyển vào biến $xml
$xml = ' Timon Carson tempus.non@enimSuspendissealiquet.ca Erat Vivamus Inc. Boris Alexander erat@risusNuncac.co.uk Nascetur Ridiculus Corp. Todd Anthony pede.Cum@nuncQuisque.net Urna Ut Ltd Leo Hayes velit.Pellentesque.ultricies@felispurus.com Velit Eget Consulting Edan Frederick pellentesque.Sed@magnaPraesent.net Feugiat LLP Calvin Joyce ultrices.posuere.cubilia@pede.com Laoreet Lectus Quis Institute Germane Gentry arcu@insodales.net Commodo Foundation Barclay Buckner vel@dolorquam.ca Quis Massa Consulting Glenna Rollins mi.lacinia.mattis@condimentumDonec.com Urna LLP Blaze Boyer eu.ligula@ipsumleo.net Quisque Company Grady Atkinson luctus@pedeNunc.net Dui Quis Consulting ';
$xmlObject = simplexml_load_string[$xml];
Hãy xem đầu ra của biến $xmlObject
đầu ra
Bước 2
Bây giờ chúng ta có biến $xmlObject
, chúng ta có thể sử dụng một số mã hóa và giải mã để chuyển đổi hoàn toàn XML thành array
$xml = ' Timon Carson tempus.non@enimSuspendissealiquet.ca Erat Vivamus Inc. Boris Alexander erat@risusNuncac.co.uk Nascetur Ridiculus Corp. Todd Anthony pede.Cum@nuncQuisque.net Urna Ut Ltd Leo Hayes velit.Pellentesque.ultricies@felispurus.com Velit Eget Consulting Edan Frederick pellentesque.Sed@magnaPraesent.net Feugiat LLP Calvin Joyce ultrices.posuere.cubilia@pede.com Laoreet Lectus Quis Institute Germane Gentry arcu@insodales.net Commodo Foundation Barclay Buckner vel@dolorquam.ca Quis Massa Consulting Glenna Rollins mi.lacinia.mattis@condimentumDonec.com Urna LLP Blaze Boyer eu.ligula@ipsumleo.net Quisque Company Grady Atkinson luctus@pedeNunc.net Dui Quis Consulting ';
$xmlObject = simplexml_load_string[$xml];
$array = json_decode[json_encode[$xmlObject],TRUE]; // Convert the object by encoding as json and decoding to associative array.
Bây giờ chúng ta có một biến
$xml = ' Timon Carson tempus.non@enimSuspendissealiquet.ca Erat Vivamus Inc. Boris Alexander erat@risusNuncac.co.uk Nascetur Ridiculus Corp. Todd Anthony pede.Cum@nuncQuisque.net Urna Ut Ltd Leo Hayes velit.Pellentesque.ultricies@felispurus.com Velit Eget Consulting Edan Frederick pellentesque.Sed@magnaPraesent.net Feugiat LLP Calvin Joyce ultrices.posuere.cubilia@pede.com Laoreet Lectus Quis Institute Germane Gentry arcu@insodales.net Commodo Foundation Barclay Buckner vel@dolorquam.ca Quis Massa Consulting Glenna Rollins mi.lacinia.mattis@condimentumDonec.com Urna LLP Blaze Boyer eu.ligula@ipsumleo.net Quisque Company Grady Atkinson luctus@pedeNunc.net Dui Quis Consulting ';
$xmlObject = simplexml_load_string[$xml];
0 mới, hãy xem nội dungđầu ra
Bạn có thể xem ví dụ trực tiếp này trong PHP Fiddle mà tôi đã tạo để tham khảo
Lớp SimpleXMLElement có nhiều cách sử dụng hơn ngoài việc chuyển đổi thành array
, bạn có thể xem tài liệu về hàm và lớp được sử dụng trong hướng dẫn này bên dưới –
- đơn giảnxml_load_string
- SimpleXMLElement
Tóm lược
PHP có một kho chức năng ẩn khổng lồ và trong trường hợp này, nó phục vụ cho XML một cách dễ dàng. Các lớp và chức năng có sẵn để sử dụng là cực kỳ hữu ích. Đảm bảo rằng bạn đã xem tài liệu được liệt kê ở trên nếu bạn thường xuyên làm việc với dữ liệu XML