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, която е акронимът на (неанализирани) символни данни, се използва за игнориране на специални знаци като “<,>” при анализиране на 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, за да зареди името на файла служители.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;“ чете стойността на дъщерния елемент позиция

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

Ако приемем, че сте запазили файла 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 задава стойността на дъщерния възел, напр. Кампанията.
  • “$root->appendChild($movie_node);” добавя елементите movie_node към основния възел Филми
  • “$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

Oбобщение

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