Как получить параметры из XML-файла на PHP?
Представим, что перед вами стоит задача – спарсить данные из XML-файла. Поскольку структура таких файлов может быть разной, то и трудности при написании своего скрипта также могут быть разными.
Сегодня на примере одного из таких файлов я покажу, как с помощью PHP получить тот или иной параметр.
Итак, перед нами файл price.xml с примерно такой структурой:
<offers>
<offer id="102" available="true">
<url>www.pandoge.com</url>
<name>Коробка</name>
<param name="Высота">60</param>
<param name="Ширина">20</param>
<param name="Цвет">Синий</param>
</offer>
</offers>
Для теста получим его содержимое, а именно – данные из тега <url>:
$xml = simplexml_load_file("./price.xml");
foreach($xml->offer as $offer) {
echo $offer->url;
}
Вроде бы все просто. А теперь попробуем получить значение, например, параметра «цвет» – и у большинства новичков здесь начинают возникать трудности.
А решается эта проблема довольно просто с помощью использования «XPath» – специального языка, созданного для запросов к элементам XML.
Реализация:
$xml = simplexml_load_file('./price.xml');
foreach($xml->offer as $offer) {
echo $offer->xpath('param[@name="Цвет"]')[0];
}
В таком случае мы получаем значение «Синий», что нам и необходимо, а остальные параметры - получаются по аналогии.