Парсер SimpleXML в PHP
Парсер SimpleXML позволяет нам легко читать и манипулировать XML-данными. Это легковесный парсер, который использует минимальное количество ресурсов. Парсер SimpleXML идеально подходит для небольших, несложных XML-файлов.
Этот парсер предоставляет простой способ доступа к элементам, атрибутам и текстовому содержимому XML-документа.
Совет: Парсер SimpleXML является частью ядра PHP. Установка не требуется!
Парсер SimpleXML в PHP - Чтение XML
Вы можете читать XML из строки или из файла, используя эти функции:
simplexml_load_string()- Читает XML-данные из строкиsimplexml_load_file()- Читает XML-данные из файла
Парсер SimpleXML - Чтение из строки
Функция PHP simplexml_load_string() используется для чтения XML-данных из строки.
Следующий пример показывает, как читать XML-данные из строки:
Пример
<?php
// Создаем строковую переменную, содержащую XML-данные
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Андрей</to>
<from>Татьяна</from>
<heading>Напоминание</heading>
<body>Не забывай меня в эти выходные!</body>
</note>";
// Чтение из строки
$xml = simplexml_load_string($myXMLData) or die("Ошибка: Невозможно создать объект");
print_r($xml);
?>
Попробуйте сами »
Результатом выполнения приведенного выше кода будет:
SimpleXMLElement Object ( [to] => Андрей [from] => Татьяна [heading] => Напоминание [body] => Не забывай меня в эти выходные! )
Парсер SimpleXML - Чтение из файла
Функция PHP simplexml_load_file() используется для чтения XML-данных из файла.
Предположим, у нас есть XML-файл с именем "note.xml", который выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Андрей</to>
<from>Татьяна</from>
<heading>Напоминание</heading>
<body>Не забывай меня в эти выходные!</body>
</note>
Следующий пример показывает, как читать XML-данные из файла:
Пример
<?php
$xml = simplexml_load_file("note.xml") or die("Ошибка: Невозможно создать объект");
print_r($xml);
?>
Попробуйте сами »
Результатом выполнения приведенного выше кода будет:
SimpleXMLElement Object ( [to] => Андрей [from] => Татьяна [heading] => Напоминание [body] => Не забывай меня в эти выходные! )
Обработка ошибок
Используйте библиотеку PHP libxml для обработки XML-ошибок при загрузке XML-документа или строки.
Функция libxml_get_errors() возвращает массив объектов ошибок или пустой массив, если ошибок нет.
Следующий пример пытается загрузить XML-строку с ошибками:
Пример
<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>Андрей Щипунов</wronguser>
<email>and-shhipunov@mail.ru</wrongemail>
</document>";
$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
echo "Не удалось загрузить XML: ";
// перебираем ошибки
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
}
?>
Попробуйте сами »
Результатом выполнения приведенного выше кода будет:
Не удалось загрузить XML:
Несоответствие открывающего и закрывающего тега: user строка 3 и wronguser
Несоответствие открывающего и закрывающего тега: email строка 4 и wrongemail
Совет: Следующая глава показывает, как получать значения узлов из XML-файла с помощью SimpleXML!
Справочник парсера SimpleXML в PHP
Для получения полного справочника функций парсера SimpleXML посетите страницу Справочник парсера SimpleXML в PHP.