Учебное пособие по PHP XML: создание, анализ и чтение на примере
Что такое XML?
XML — это аббревиатура расширяемого языка разметки.
XML используется для структурирования, хранения и транспортировки данных из одной системы в другую.
XML похож на HTML.
Он использует открывающие и закрывающие теги.
В отличие от HTML, XML позволяет пользователям определять свои собственные теги.
Что такое DOM?
DOM — это аббревиатура от Document Object Model.
Это кросс-платформенный и независимый от языка стандарт, который определяет, как получать доступ к данным и манипулировать ими;
- HTML
- XHTML
- XML
DOM XML используется для доступа к XML-документам и управления ими. Это просматривает XML-документ как древовидная структура.
XML-парсеры
Анализатор XML — это программа, которая преобразует документ XML в объект объектной модели документа XML (DOM).
Затем объектом XML DOM можно манипулировать, используя Javaсценарий, Pythonи PHP и т. д.
Ключевое слово CDATA, которое является аббревиатурой от (неанализируемых) символьных данных, используется для игнорирования специальных символов, таких как «<,>», при анализе XML-документа.
Зачем использовать XML?
- Веб-сервисы, такие как SOAP и REST, используют формат XML для обмена информацией. Изучение того, что такое XML и как он работает, даст вам конкурентное преимущество как разработчика, поскольку современные приложения интенсивно используют веб-сервисы.
- XML-документы можно использовать для хранения настроек конфигурации приложения.
- Он позволяет вам создавать свои собственные теги, что делает его более гибким.
Пример XML-документа
Предположим, вы разрабатываете приложение, которое получает данные от веб-службы в формате XML.
Ниже приведен пример того, как выглядит XML-документ.
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
ВОТ,
- « » указывает версию XML, которая будет использоваться, и кодировку.
- « » является корневым элементом.
- « … ” — это дочерние элементы администрирования и продаж соответственно.
Как читать XML с помощью PHP
Давайте теперь напишем код, который будет читать XML-документ сотрудников и отображать результаты в веб-браузере. Index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
ВОТ,
- «$xml = simplexml_load_file('employees.xml');» использует функцию simplexml_load_file для загрузки файла с именем jobs.xml и присвоения его содержимого переменной массива $xml.
- «$list = $xml->запись;» получает содержимое узла записи.
- «for ($i = 0; $i < count(…)…» — это цикл for, который считывает числовой массив и выводит результаты.
- «$list[$i]->attributes()->man_no;» читает атрибут man_no элемента
- «$list[$i]->имя;» считывает значение дочернего элемента name
- «$list[$i]->позиция;» считывает значение дочернего элемента позиции
Тестирование нашего приложения
Предполагая, что вы сохранили файл index.php в папке phptus/xml, перейдите по URL-адресу. http://localhost/phptuts/xml/index.php
Как создать XML-документ с помощью PHP
Теперь мы рассмотрим, как создать XML-документ с помощью PHP.
Мы будем использовать приведенный выше пример в древовидной диаграмме DOM.
Следующий код использует PHP, встроенный в класс DOMDocument, для создания XML-документа.
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'The Campaign'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
ВОТ,
- «$dom = новый DOMDocument();» создает экземпляр класса DOMDocument.
- «$dom->encoding = 'utf-8';» устанавливает кодировку документа utf-8
- «$dom->xmlVersion = '1.0';» указывает номер версии 1.0
- «$dom->formatOutput = true;» гарантирует, что вывод будет хорошо отформатирован
- «$root = $dom->createElement('Фильмы');» создает корневой узел с именем Movies
- «$attr_movie_id = новый DOMAttr('movie_id', '5467');» определяет атрибут идентификатора фильма узла «Фильмы»
- «$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')» создает дочерний узел узла «Фильмы». ElementName указывает имя элемента, например Title. ElementValue устанавливает значение дочернего узла, например The Campaign.
- «$root->appendChild($movie_node);» добавляет элементы Movie_node к корневому узлу Movies
- «$dom->appendChild($root);» добавляет корневой узел к XML-документу.
- «$dom->save($xml_file_name);» сохраняет XML-файл в корневом каталоге веб-сервера.
- «эхо ». $xml_имя_файла . ' был успешно создан';» создает ссылку на XML-файл.
Тестирование нашего приложения
Предполагая, что вы сохранили файл create_movies_list в папке phptuts/xml, перейдите по URL-адресу. http://localhost/phptuts/xml/create_movies_list.php
Нажмите на ссылку Movies_list_xml.
Резюме
- XML это аббревиатура от расширяемого языка разметки.
- XML можно использовать для обмена информацией между системами или хранения настроек конфигурации приложения и т. д.
- DOM — это аббревиатура объектной модели документа. XML DOM рассматривает XML-документ как древовидную структуру.
- XML Parser — это программа, которая преобразует XML-документ XML в документ с древовидной структурой DOM.
- CDATA используется для игнорирования специальных символов при анализе XML-документов.
- PHP использует simplexml_load_file для чтения XML-документов и возврата результатов в виде числового массива.
- Класс PHP DOMDocument для создания XML-файлов.