Учебники

20) PHP и XML

Что такое XML?

XML является аббревиатурой от Extensible Markup Language.

XML используется для структурирования, хранения и передачи данных из одной системы в другую.

XML похож на HTML.

Он использует открывающие и закрывающие теги.

В отличие от HTML, XML позволяет пользователям определять свои собственные теги.

В этом уроке вы узнаете

Что такое DOM?

DOM — это аббревиатура для объектной модели документа.

Это кроссплатформенный и не зависящий от языка стандарт, определяющий, как осуществлять доступ к данным и манипулировать ими;

  • HTML
  • XHTML
  • XML

DOM XML используется для доступа и управления XML-документами. Он рассматривает XML-документ как древовидную структуру.

Парсеры XML

Синтаксический анализатор XML — это программа, которая переводит документ XML в объект модели модели документа XML (DOM).

Объектом XML DOM затем можно управлять с помощью JavaScript, Python, PHP и т. Д.

Ключевое слово CDATA, которое является аббревиатурой для (Unparsed) символьных данных, используется для игнорирования специальных символов, таких как «<,>», при разборе 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 version =» 1.0 «encoding =» utf-8 «?>» Указывает используемую версию xml и кодировку
  • «<Employee status =» ok «>» является корневым элементом.
  •  «<Запись…>… </ запись>» — это дочерние элементы администрирования и продаж соответственно.

Как читать 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 (’employee.xml’);» использует функцию simplexml_load_file, чтобы загрузить имя файла employee.xml и присвоить содержимое переменной массива $ xml.
  • «$ List = $ xml-> record;» получает содержимое узла записи.
  •  For ($ i = 0; $ i <count (…)… »- цикл for, который читает числовой массив и выводит результаты
  • «$ Список [$ я] -> атрибуты () -> man_no;» читает атрибут man_no элемента
  • «$ Список [$ я] -> имя;» читает значение имени дочернего элемента
  • «$ Список [$ я] — позиция>;» читает значение дочернего элемента position

Тестирование нашего приложения

Предполагая, что вы сохранили файл index.php в папке phptus / xml, перейдите по URL-адресу http: //localhost/phptuts/xml/index.php

PHP XML, DOM, Parser

Как создать 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 = new DOMAttr (‘movie_id’, ‘5467’);» определяет атрибут id фильма узла Movies
  • «$ Child_node_element_name = $ dom-> createElement (« ElementName »,« ElementValue »)» создает дочерний узел узла «Фильмы». ElementName указывает имя элемента, например, заголовок. ElementValue устанавливает значение дочернего узла, например, The Campaign.
  • «$ Корне-> AppendChild ($ movie_node);» добавляет элементы movie_node к корневому узлу Movies
  • «$ Dom-> AppendChild ($ корень);» добавляет корневой узел к документу XML.
  • «$ Dom-> сохранить ($ xml_file_name);» сохраняет файл XML в корневом каталоге веб-сервера.
  • «Echo ‘<a href= «‘.$xml_file_name.'»>’. $ xml_file_name. «</a> успешно создан»; » создает ссылку на файл XML.

Тестирование нашего приложения

Предполагая, что вы сохранили файл create_movies_list в папке phptuts / xml, перейдите по URL-адресу http: //localhost/phptuts/xml/create_movies_list.php

PHP XML, DOM, Parser

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

PHP XML, DOM, Parser

Резюме

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