PHP SimpleXML


PHP SimpleXML обрабатывает наиболее распространённые задачи XML, оставляя остальное другим расширениям.


Что такое PHP SimpleXML?

SimpleXML — это новая возможность в PHP 5.

Расширение SimpleXML предоставляет простой способ получать имена и текст XML-элементов.

По сравнению с парсерами DOM или Expat, SimpleXML может читать текстовые данные из XML-элементов всего в несколько строк кода.

SimpleXML может преобразовать XML-документ (или XML-строку) в объект, например:

  • Элементы преобразуются в отдельные атрибуты объекта SimpleXMLElement. Когда на одном уровне существует несколько элементов, они помещаются в массив.
  • Доступ к атрибутам осуществляется с использованием ассоциативных массивов, где индексы соответствуют именам атрибутов.
  • Текст внутри элементов преобразуется в строки. Если элемент содержит несколько текстовых узлов, они располагаются в порядке их обнаружения.

SimpleXML очень быстро использовать при выполнении следующих базовых задач:

  • Чтение/извлечение данных из XML-файлов/строк
  • Редактирование текстовых узлов или атрибутов

Однако при работе с более сложным XML, например с пространствами имен, лучше использовать парсер Expat или XML DOM.


Установка

Начиная с PHP 5 функции SimpleXML являются частью ядра PHP. Эти функции можно использовать без установки.


Примеры PHP SimpleXML

Suppose we have the following XML file,":

<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Напоминание</heading> <body>Не забудь меня в эти выходные!</body> </note>

Теперь мы хотим вывести другую информацию из вышеуказанного XML-файла:

Пример 1

Выведите ключи и элементы переменной $xml (которая является объектом SimpleXMLElement):

<?php $xml=simplexml_load_file("note.xml"); print_r($xml); ?>

Запустить пример »

Приведённый выше код выведет:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

Пример 2

Вывести данные каждого элемента в XML-файле:

<?php $xml=simplexml_load_file("note.xml"); echo $xml->to . "<br>"; echo $xml->from . "<br>"; echo $xml->heading . "<br>"; echo $xml->body; ?>

Запустить пример »

Приведённый выше код выведет:

Tove
Jani
Reminder
Don't forget me this weekend!

Пример 3

Выведите имя элемента и данные каждого дочернего узла:

<?php $xml=simplexml_load_file("note.xml"); echo $xml->getName() . "<br>"; foreach($xml->children() as $child) { echo $child->getName() . ": " . $child . "<br>"; } ?>

Запустить пример »

Приведённый выше код выведет:

note
to: Tove
from: Jani
heading: Reminder
body: Don't forget me this weekend!


Дополнительная информация о PHP SimpleXML

Для получения дополнительной информации о функциях PHP SimpleXML посетите нашСправочное руководство по PHP SimpleXML。

Другие расширения