Сериализация в XML
Для сериализации (кодирование) объекта PHP в XML нет специальных функций, метод нужно писать самому отталкиваясь от задач. В приведенном ниже примере показано, как кодировать ассоциативный массив PHP в файл XML:
<?
// Создаём XML-документ
$dom = new DOMDocument('1.0', 'utf-8');
// Создаём корневой элемент <users>
$root = $dom->createElement('users');
$dom->appendChild($root);
$users = array(
array('id' => 1, 'name' => 'Николай Петров', 'email' => 'petrov.n@mail.ru'),
array('id' => 2, 'name' => 'Петр Иванов', 'email' => 'ivanov.p@mail.ru'),
array('id' => 3, 'name' => 'Сергей Смирнов', 'email' => 'smirnov.s@mail.ru')
);
foreach ( $users as $value ) {
// Создаём узел <user>
$user = $dom->createElement('user');
// Добавляем дочерний элемент для <users>
$root->appendChild($user);
// Устанавливаем атрибут id для узла <user>
$user->setAttribute('id', $value['id']);
// Создаём узел <name> с текстом внутри
$name = $dom->createElement('name', $value['name']);
// Добавляем дочерний элемент для <user>
$user->appendChild($name);
// Создаём узел <email>
$email = $dom->createElement('email');
// Создаем текстовой узел
$text = $dom->createTextNode($value['email']);
// Добавляем текстовой узел для <email>
$email->appendChild($text);
// Добавляем дочерний элемент для <user>
$user->appendChild($email);
}
// Сохраняем полученный XML-документ в файл
$dom->save('users.xml');
В корневой директории получим файл users.xml
со следующим содержимым:
<users>
<user id="1">
<name>Николай Петров</name>
<email>petrov.n@mail.ru</email>
</user>
<user id="2">
<name>Петр Иванов</name>
<email>ivanov.p@mail.ru</email>
</user>
<user id="3">
<name>Сергей Смирнов</name>
<email>smirnov.s@mail.ru</email>
</user>
</users>