PHP5 SimpleXML анализатор
SimpleXML - это расширение PHP, которое позволяет легко манипулировать и получать XML данные.
SimpleXML синтаксический анализатор на основе дерева.
SimpleXML обеспечивает простой способ получения имени элемента, атрибутов и текстовых содержимых, если известна структура или макет XML документа.
SimpleXML превращает XML документ в структуру данных, как коллекция массивов и объектов.
По сравнению с DOM или Expat парсер, SimpleXML занимает меньше строк кода для чтение текстовых данных из элемента.
SimpleXML установка
Начиная с PHP 5, функции SimpleXML являются частью ядра PHP. Для использования этих функций установка не требуется.
PHP SimpleXML - чтение из строки
PHP функция simplexml_load_string()
используется для чтения XML данных из строки.
Предположим, у нас есть переменная, содержащая XML данные, например:
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Андрей</to>
<from>Татьяна</from>
<heading>Напоминание</heading>
<body>Не забудь меня на этих выходных!</body>
</note>";
Пример ниже показывает как использовать функцию simplexml_load_string()
для чтение XML данных из строки:
Пример
<?php
$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("Error: Невозможно создать объект");
print_r($xml);
?>
Смотреть код »
Вывод данных приведенного выше кода:
SimpleXMLElement Object ( [to] => Андрей [from] => Татьяна [heading] => Напоминание [body] => Не забудь меня на этих выходных! )
Совет по обработке ошибок: Используйте функцию libxml_use_internal_errors()
для получения
всех ошибок XML при загрузке документа, а затем повторить ошибки.
А тоследующий пример попытается загрузить сломанную строку 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:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail
PHP 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>
Пример ниже показывает как использовать функцию simplexml_load_file()
для чтения
XML данные из файла:
Пример
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Невозможно создать объект");
print_r($xml);
?>
Смотреть код »
Вывод данных приведенного выше кода:
SimpleXMLElement Object ( [to] => Андрей [from] => Татьяна [heading] => Напоминание [body] => Не забудь меня на этих выходных! )
Совет: В следующей главе показано, как получить/вернуть значения из XML файла с SimpleXML!
PHP SimpleXML Справочник
Для получения дополнительной информации о функциях PHP SimpleXML, посетите наш PHP SimpleXML Справочник.