XML sang mảng PHP

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

Chủ Đề