Учебное пособие по 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

Теперь мы рассмотрим, как создать 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

Создайте XML-документ с помощью PHP

Нажмите на ссылку Movies_list_xml.

Создайте XML-документ с помощью PHP

Резюме

  • XML это аббревиатура от расширяемого языка разметки.
  • XML можно использовать для обмена информацией между системами или хранения настроек конфигурации приложения и т. д.
  • DOM — это аббревиатура объектной модели документа. XML DOM рассматривает XML-документ как древовидную структуру.
  • XML Parser — это программа, которая преобразует XML-документ XML в документ с древовидной структурой DOM.
  • CDATA используется для игнорирования специальных символов при анализе XML-документов.
  • PHP использует simplexml_load_file для чтения XML-документов и возврата результатов в виде числового массива.
  • Класс PHP DOMDocument для создания XML-файлов.