Парсер XML PHP с использованием SimpleXML. Примеры

Парсер XML PHP с использованием SimpleXML. Примеры

2 марта 2020 PHP

Существует несколько способов парсить XML-данные с использованием PHP, один из которых — SimpleXML. В предыдущей статье мы уже рассматривали, как парсить RSS ленты с помощью этой замечательной библиотеки. Библиотека входит в состав PHP начиная с 5 версии. Парсить и манипулировать данными из XML с ней довольно легко и просто.

Пример 1

Здесь мы показываем очень простой синтаксический анализ, используя текст XML, переданный с помощью simplexml_load_string. Затем мы выводим объект, возвращаемый simplexml_load_string, как показано ниже. Для загрузки из файла также существует функция simplexml_load_file, пример simplexml_load_file приведен в конце этого руководства.

<?php
$xmlData=simplexml_load_string("<root><node>This is a node</node></root>");
echo var_dump($xmlData);
?>

Пример 2

Здесь мы покажем, как получить доступ к элементу внутри объекта, возвращаемого simplexml_load_string. Это просто основные обозначения объектов.

travelimperia.com

<?php
$xmlData=simplexml_load_string("<root><node>This is a node</node></root>");
echo $xmlData->node;
?>

Пример 3

Доступ к атрибуту:

<?php
$xmlData=simplexml_load_string("<root><nodes><node1 exampleAttribute='sample attribute'>Node 1 Content</node1></nodes></root>");
echo "Node 1 content is ".$xmlData->nodes->node1;
echo "Node 1 attribute is ".$xmlData->nodes->node1->attributes()->exampleAttribute;
?>

Пример 4

Итерирование атрибутов:

<?php
$xmlData=simplexml_load_string("<root><node1 att1='ATT1' att2='ATT2'>Content</node1></root>");
foreach ($xmlData->node1->attributes() as $attributeName=>$attributeValue)
{
 echo "Node 1 has ".$attributeName . " with the value of " . $attributeValue;
}
?>

Пример 5

Создание XML: вы добавляете дочерние узлы и атрибуты в объект xml, используя addChild и addAttributes.

<?php
$xmlData=simplexml_load_string("<xml></xml>");
 
// Добавление дочерних узлов
$book1=$xmlData->addChild("book1");
$book2=$xmlData->addChild("book2");
 
// Добавление атрибутов
$book1->addAttribute("title", "Book1Title");
$book2->addAttribute("title", "Book2Title");
 
$book1->addChild("author", "Jim");
$book2->addChild("author", "James");
?>

Приведенный выше код создает XML, который выглядит следующим образом:

<xml>
 <book1 title="Book1Title">
 <author>Jim</auhor>
 </book1>
 <book2 title="Book2Title">
 <author>James</author>
 </book2>
</xml>
<?php
echo $xmlData->book1->attributes()->title. "n";
echo $xmlData->book2->attributes()->title. "n";
echo $xmlData->book1->author. "n";
echo $xmlData->book2->author. "n";
?>

Пример 6

Создание XML Это тот же метод, что и в примере 5, но с использованием конструктора SimpleXMLElement. Конструктор принимает либо строку, либо URL:

<?php
$xmlData=new SimpleXMLElement("<xml></xml>");
 
// Adding child nodes
$book1=$xmlData->addChild("book1");
$book1->addAttribute("title", "Book1Title");
$book1->addChild("author", "Jim");
 
echo $book1->attributes()->title. "n";
echo $book1->author. "n";
?>

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Телеграм бот на PHP отправляющий сообщения с сайта

Что если сообщения с сайта будут приходить не только на ваш e-mail, но и моментально в мессенджер телеграм. Удобно же! Нужно было реализовать такой функционал, ну как и всегда все оказалось довольно просто. Так же стояла задача отправлять сообщения не Читать далее

Отправка формы без перезагрузки страницы на PHP и Ajax

Постоянно приходится пользоваться этой заготовкой. Вы можете модернизировать ее под любые нужды, будь то форма обратной связи, форма обратного звонка или заказ какой-либо услуги или товара. Поэтому я не буду украшать ее стилями, применять классы Bootstrap и различные скрипты, как Читать далее

Вывести на PHP месяц и день недели на русском

Довольно часто приходится сталкиваться с выводом названий месяцев и дней недели по-русски. При чем в различных вариантах, к примеру с полным названием или сокращенным, с большой буквы или с маленькой. Можно воспользоваться одним из этих 2 вариантов для вывода даты Читать далее

Парсер яндекс погоды на PHP

Рабочий пример PHP парсера, который получает погоду с Яндекса по ID города. Скрипт сохраняет данные в файле кеша на сайте, и обновляет его раз в час. Так же расскажу как выводить на сайте собственные иконки погоды вместо стандартных от Яндекса. Читать далее

Как встроить видео с YouTube канала на сайт

Для вывода списка видеозаписей из канала или плейлиста YouTube на сайте можно воспользоваться этим полностью рабочим решением на PHP. С помощью этой функции можно получить все необходимые данные видеозаписей: название, изображение и идентификатор видео. Вам понадобится идентификатор канала или плейлиста. Читать далее

Курсы доллара и евро с сайта Центробанка на PHP

Парсер получает курсы доллара и евро с сайта Центробанка каждые 24 часа и записывает их в файл кеша /log/course.txt Скрипт полностью готов к работе и не требует каких-либо дополнительных настроек. <? function loadCourse(){ define("tsCourse","15:00:00"); # Время смены курса центральным банком Читать далее

Календарь на PHP и Ajax

Пример календаря на PHP и Ajax с переключением месяцев. Можно использовать как заготовку для решения любых задач. Я использовал его для создания плагина календаря мероприятий на WordPress. Скрипт использует процедурный подход, но имеет разделенную структуру с шаблоном , что довольно Читать далее

Один комментарий на «Парсер XML PHP с использованием SimpleXML. Примеры»

  1. Deborahlon:

    В этом что-то есть и идея хорошая, согласен с Вами.

Добавить комментарий