Підручник PHP XML: створення, аналіз, читання з прикладом

Що таке XML?

XML — це абревіатура від Extensible Markup Language.

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, яке є абревіатурою для (Unparsed) Character Data, використовується для ігнорування спеціальних символів, таких як «<,>», під час аналізу документа 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, щоб завантажити ім’я файлу zaposlenih.xml і призначити його вміст змінній масиву $xml.
  • “$list = $xml->record;” отримує вміст вузла запису.
  • «for ($i = 0; $i < count(…)…» — це цикл for, який читає числовий масив і виводить результати
  • “$list[$i]->attributes()->man_no;” читає атрибут man_no елемента
  • «$list[$i]->name;» читає значення дочірнього елемента name
  • “$list[$i]->position;” читає значення дочірнього елемента position

Тестуємо наш додаток

Якщо ви зберегли файл 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')” створює дочірній вузол вузла Movies. ElementName визначає назву елемента, наприклад Title. ElementValue встановлює значення дочірнього вузла, наприклад, The Campaign.
  • «$root->appendChild($movie_node);» додає елементи movie_node до кореневого вузла Movies
  • “$dom->appendChild($root);” додає кореневий вузол до документа XML.
  • “$dom->save($xml_file_name);” зберігає XML-файл у кореневому каталозі веб-сервера.
  • «відлуння ». $xml_file_name . « було успішно створено»;» створює посилання на файл XML.

Тестуємо наш додаток

Якщо ви зберегли файл create_movies_list у папці phptuts/xml, перейдіть до URL-адреси http://localhost/phptuts/xml/create_movies_list.php

Створіть XML-документ за допомогою PHP

Натисніть посилання movies_list_xml

Створіть XML-документ за допомогою PHP

Підсумки

  • XML це абревіатура від Extensible Markup Language
  • XML можна використовувати для обміну інформацією між системами або збереження параметрів конфігурації програми тощо.
  • DOM - це абревіатура від Document Object Model. XML DOM розглядає XML-документ як деревовидну структуру
  • Синтаксичний аналізатор XML — це програма, яка перетворює XML-документ XML у структуру дерева DOM, подібну до документа.
  • CDATA використовується для ігнорування спеціальних символів під час аналізу документів XML.
  • PHP використовує simplexml_load_file для читання документів XML і повернення результатів у вигляді числового масиву
  • Клас PHP DOMDocument для створення файлів XML.