Расширение PHP SimpleXML разбирает XML в масcив. SimpleXML имеет полный набор инструментов, которые позволяют читать, писать и анализировать XML-документ. Расширение SimpleXML требует минимальную версию PHP 5 и расширение PHP libxml.
Расширение PHP SimpleXML включено по умолчанию, проверить это можно с помощью функции phpinfo():
Как преобразовать XML в массив с помощью PHP
Для примера возьмем такой XML документ:
<?xml version='1.0'?>
<items>
<item id='1'>
<name>Box</name>
<year>2021</year>
<price>30.00</price>
<address>
<street>3030 Info Avenue</street>
<city>Los Angeles</city>
<state>CA</state>
</address>
</item>
<item id='2'>
<name>New box</name>
<year>2022</year>
<price>50.00</price>
<address>
<street>3040 Info Road</street>
<city>Duluth</city>
<state>GA</state>
</address>
</item>
</items>
Преобразуем XML в массив PHP. Для этого загружаем строку с XML в simplexml_load_string(), в ответ получим ассоциативный массив:
<?php
$xml = "<?xml version='1.0'?>
<items>
<item id='1'>
<name>Box</name>
<year>2021</year>
<price>30.00</price>
<address>
<street>3030 Info Avenue</street>
<city>Los Angeles</city>
<state>CA</state>
</address>
</item>
<item id='2'>
<name>New box</name>
<year>2022</year>
<price>50.00</price>
<address>
<street>3040 Info Road</street>
<city>Duluth</city>
<state>GA</state>
</address>
</item>
</items>";
libxml_use_internal_errors(TRUE);
//Используем simplexml_load_file(), если нужно распарсить файл
//$objXmlDocument = simplexml_load_file("pathToFile.xml");
//Используем simplexml_load_string(), если нужно распарсить строку
$objXmlDocument = simplexml_load_string($xml);
if ($objXmlDocument === FALSE) {
echo "There were errors parsing the XML file.\n";
foreach(libxml_get_errors() as $error) {
echo $error->message;
}
exit;
}
$objJsonDocument = json_encode($objXmlDocument);
$arrOutput = json_decode($objJsonDocument, TRUE);
echo "<pre>";
print_r($arrOutput);
echo "</pre>";
foreach ($arrOutput['item'] as $arrOutputKey => $arrOutputValue) {
echo $arrOutputValue['@attributes']['id'] . ' - ' .$arrOutputValue['name'] . '<br />';
}
Пример выполнения скрипта:
Array
(
[item] => Array
(
[0] => Array
(
[@attributes] => Array
(
[id] => 1
)
[name] => Box
[year] => 2021
[price] => 30.00
[address] => Array
(
[street] => 3030 Info Avenue
[city] => Los Angeles
[state] => CA
)
)
[1] => Array
(
[@attributes] => Array
(
[id] => 2
)
[name] => New box
[year] => 2022
[price] => 50.00
[address] => Array
(
[street] => 3040 Info Road
[city] => Duluth
[state] => GA
)
)
)
)
1 - Box
2 - New box
devreadwrite.com



Подборка адаптивных шаблонов для вашей CMS
Статьи по
Как получить и установить HTTPS сертификат на сайта

Комментарии
Комментарии отсутствуют, Вы можете быть первым