Конвертирайте XML в асоциативен масив в PHP

Convert Xml Associative Array Php



XML (Разширяем език за маркиране) е един вид език за маркиране, който се използва за съхраняване на данните в четим от човека формат. Той е различен от другите езици за маркиране. Всеки маркер на този език е дефиниран от потребителя. Използването на XML е по -доброто решение за съхраняване на малко количество данни, когато не искате да използвате никаква база данни за съхранение на данни. Данните от XML документа могат да бъдат лесно достъпни и използвани във всяко уеб приложение с помощта на PHP скрипт. В този урок е показано как XML документът може да бъде анализиран и съхранен в асоциативен масив.

Необходими функции

Някои вградени функции се използват за преобразуване на XML съдържанието в асоциативен PHP масив. По -долу са обяснени целите на различните функции.







file_get_contents ():



Тази функция връща низовите данни чрез преобразуване на XML данни. Той приема всяко име на XML файл като аргумент.



simplexml_load_string ():





Тази функция връща XML обекта чрез преобразуване на XML низови данни. Той приема XML низови данни като аргумент.

simplexml_load_file ():



Тази функция връща XML обекта чрез преобразуване на съдържанието на XML файл. Той приема името на XML файла като аргумент.

SimpleXMLElement ():

Използва се за създаване на XML обект от XML данни. Той приема стойността на съдържанието на XML като аргумент.

json_encode ():

Той връща JSON обекта чрез преобразуване на XML обекта. Той приема XML обектната променлива като аргумент.

json_decode ():

Той връща асоциативния PHP масив чрез преобразуване на JSON данни. Той приема обектната променлива JSON като аргумент.

Създайте XML файл

Ще трябва да създадете XML файл или да дефинирате XML данни в скрипта, за да знаете начина на преобразуване на XML данни в асоциативен PHP масив. Създайте XML файл с име courses.xml със следното съдържание и го съхранявайте на мястото, където е PHP скриптът. Файлът съдържа дъщерни елементи под родителски елемент. И така, двуизмерен асоциативен масив ще се генерира след преобразуване на следния XML файл в PHP масив.

courses.xml

версия='1.0'?>
>
>Уеб програмиране>
>6 месеца>
>
>
>Радостта от PHP програмирането>
>Алън Форбс>
>Остров Слива>
>
>
>PHP& MySQL Новак за Ninja
Том Бътлър и Кевин Янк
SitePoint


Ръководи първо PHP & MySQL
Лин Бейгли и Майкъл Морисън
О’Райли


Пример-1: Конвертирайте съдържанието на XML файл в асоциативен масив без грешка при проверка

Следният скрипт показва използването на функции file_get_contents () и simplexml_load_string () за създаване на XML обект. Тук файлът courses.xml се използва за преобразуване, което е било създадено преди това. След това функцията json_encode () и json_decode () се използват за получаване на асоциативния масив след преобразуване на съдържанието на XML файл. Ако в съдържанието на XML не съществува грешка, следният скрипт няма да покаже грешка. Тук, | _+_ | tag се използва за отпечатване на масива по форматиран начин.



// Определете съществуващия XML файл
$ xml = 'courses.xml';

// Прочетете цялото съдържание на XML файла като XML низ
$ xmlДанни = file_get_contents ($ xml);

// Конвертираме XML низови данни в XML обект
$ xmlObject = simplexml_load_string ($ xmlДанни);

// Конвертира XML обект в JSON обект
$ jsonObject = json_encode ($ xmlObject);

// Конвертира JSON обект в асоциативен масив
$ assArray = json_decode ($ jsonObject, вярно);

// Отпечатва структурата на асоциативния масив
изхвърлен '
  
';

?>

Изход:

Следният изход ще се появи след изпълнение на PHP скрипта. Тук се генерира двуизмерен масив въз основа на съдържанието на XML файла, courses.xml.

Пример-2: Конвертирайте съдържанието на XML файл в асоциативен масив с грешка при проверка

По -добре е да проверите грешката при преобразуване на XML в асоциативен масив. Това ще помогне на кодера да отстрани грешки в кода, ако проверката за грешки е изпълнена в скрипта. Следният скрипт показва начините за преобразуване на съдържанието на XML файл в асоциативен масив чрез използване на simplexml_load_file () функция с обработка на грешки. Функцията libxml_use_internal_errors () се използва с TRUE стойност за активиране на обработката на грешки. Ако съдържанието на XML файл, което се използва в скрипта, съдържа грешка, функцията simplexml_load_file () ще върне false, а съобщението за грешка ще бъде отпечатано с помощта на функцията libxml_get_errors (). Ако няма грешка в XML файла, тогава съдържанието на файла ще се преобразува правилно в двуизмерен асоциативен масив.



// Активиране на обработката на потребителски грешки
libxml_use_internal_errors (ВЯРНО);

// Създаване на XML обект
$ objXml = simplexml_load_file ('courses.xml');

// Печатна грешка, ако XML обектът връща false
ако ($ objXml === НЕВЯРНО) {
изхвърлен „Възникнаха грешки при анализирането на XML файла.н';
за всеки( libxml_get_errors () като $ грешка) {
изхвърлен $ грешка->съобщение;
}
изход ;
}

// Конвертира XML обект в JSON обект
$ objJson = json_encode ($ objXml);
// Конвертира JSON обект в асоциативен масив
$ assarr = json_decode ($ objJson, ВЯРНО);

// Отпечатва структурата на асоциативния масив
изхвърлен '
';  
print_r ($assArray);
echo '
'
;

?>

Изход:

Следният изход ще се появи след изпълнение на PHP скрипта. Тук не съществува грешка в XML файла. И така, двуизмерен масив е генерирал подобно на предишния пример въз основа на съдържанието на XML файла, courses.xml.

Пример-3: Конвертиране на XML съдържание в асоциативен масив

Следният скрипт показва начина на преобразуване на XML данни в асоциативен масив с помощта на функцията SimpleXMLElement (). В скрипта XML съдържанието се съхранява в променлива с име $ xml, която се използва като аргумент на функцията SimpleXMLElement (). След това функцията json_encode () и json_decode () се използват за получаване на асоциативния масив след преобразуване на съдържанието на XML файл.



// Определете XML променливата
$ xml = <<


[защитен имейл]

12 / A, Dhanmondi
Дака



[защитен имейл]

156, Мотив
Дака



[защитен имейл]

21 / В, Могбазар
Дака



XML
;

// Създаване на XML обект
$ xmlObject = новSimpleXMLElement($ xml);
// Създаване на JSON обект
$ jsonObject = json_encode ($ xmlObject);
// Конвертира JSON обект в асоциативен масив
$ assArray = json_decode ($ jsonObject, вярно);

// Отпечатва структурата на асоциативния масив
изхвърлен '
';  
print_r ($assarr);
echo '
'
;

?>

Изход:

Следният изход ще се появи след изпълнение на PHP скрипта. Тук се генерира двуизмерен масив въз основа на съдържанието на променливата XML, $ xml.

Заключение:

Имаше три различни начина за преобразуване на XML съдържание в асоциативен масив, който беше показан в този урок. Това ще помогне на читателите да знаят начина на работа с XML данни и да анализират данните от XML съдържанието чрез лесно използване на PHP скрипт.