PHP SimpleXML Парсер
SimpleXML — це розширення PHP, яке дозволяє нам легко маніпулювати та отримувати дані XML.
Антаксичний аналізатор SimpleXML
SimpleXML — це аналізатор на основі дерева.
SimpleXML надає простий спосіб отримати назву елемента, атрибути та текстовий вміст, якщо ви знаєте структуру або макет документа XML.
SimpleXML перетворює XML-документ на структуру даних, яку можна переглядати, як набір масивів і об’єктів.
Порівняно з DOM або аналізатором Expat, SimpleXML потребує менше рядків коду для читання текстових даних з елемента.
Інсталяція
Починаючи з PHP 5, функції SimpleXML є частиною ядра PHP. Для використання цих функцій не потрібна установка.
PHP SimpleXML - Читати із рядка
Функція PHP simplexml_load_string()
використовується для читання даних XML із рядка.
Припустімо, що у нас є змінна, яка містить XML-дані, як це:
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Не забудь мене поцілувати в ці вихідні!</body>
</note>";
У прикладі нижче показано, як використовувати функцію simplexml_load_string()
для читання даних XML із рядка:
Приклад
<?php
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Не забудь мене поцілувати в ці вихідні!</body>
</note>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
?>
Виконати приклад »
Виведення коду вище буде:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Не забудь мене поцілувати в ці вихідні! )
Порада щодо обробки помилок. Використовуйте функцію libxml, щоб отримати всі помилки XML під час завантаження документа, а потім повторити помилки. У наступному прикладі намагається завантажити пошкоджений рядок XML:
Приклад
<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email>john@example.com</wrongemail>
</document>";
$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
echo "Failed loading XML: ";
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
}
?>
Виконати приклад »
Виведення коду вище буде:
Помилка завантаження XML:
Невідповідність початкового та кінцевого тегів: рядок користувача 3 та wronguser
Невідповідність початкового та кінцевого тегів: рядок електронної пошти 4 та wrongemail
PHP SimpleXML - Читати із файла
PHP функція simplexml_load_file()
використовується для читання XML даних із файлу.
Припустімо, що у нас є файл XML під назвою "note.xml", який виглядає так:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Не забудь мене поцілувати в ці вихідні!</body>
</note>
У прикладі нижче показано, як використовувати функцію simplexml_load_file()
для читання XML-даних із файлу:
Приклад
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Неможливо створити об’єкт");
print_r($xml);
?>
Виконати приклад »
Виведення коду вище буде:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Не забудь мене поцілувати в ці вихідні! )
Підказка: У наступному розділі показано, як отримати/відновити значення вузла з XML-файлу за допомогою SimpleXML!
Більше про PHP SimpleXML
Для отримання більш докладної інформації про функції PHP SimpleXML відвідайте PHP SimpleXML Довідник на нашому сайті W3Schools українською.