SimpleXML является расширением PHP, которая позволяет легко управлять и получать данные в формате XML.
SimpleXML Parser
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>Don't forget me this weekend!</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>Don't forget me this weekend!</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] => Don't forget me this weekend! )
Обработка ошибок Совет: Используйте функцию Libxml для извлечения всех ошибок XML при загрузке документа , а затем перебрать ошибки. Следующий пример пытается загрузить сломанную строку XML:
пример
<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml
version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email>[email protected]</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);
}
?>
Выполнить пример » Выход кода выше:
Failed loading 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>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
В приведенном ниже примере показано , как использовать simplexml_load_file() функцию , чтобы считывать данные XML из файла:
пример
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Cannot create
object");
print_r($xml);
?>
Выполнить пример » Выход кода выше:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder
[body] => Don't forget me this weekend! )
Совет: В следующей главе показано , как получить / извлечения значения узлов из файла XML с SimpleXML!
Больше PHP SimpleXML
Для получения дополнительной информации о функциях PHP SimpleXML, посетите наш PHP SimpleXML Reference.