Загрузка и выгрузка XML-документов через DOM
В предыдущей статье мы рассмотрели стандарт DOM. И в этой статье мы с Вами будем его применять с использованием языка PHP. И начнём с самого простого: загрузки и выгрузки XML-документа с использованием DOM.
Основной класс, который мы будем использовать, это domDocument. Через него можно создавать новые документы, сохранять их, а также загружать существующие. Давайте с Вами разберём его на примере:
<?php
$dom = new domDocument("1.0", "utf-8"); // Создаём XML-документ версии 1.0 с кодировкой utf-8
/* Текст XML-документа */
$xml = "<?xml version='1.0' encoding='utf-8'?>
<root>
<el>Элемент 1</el>
<el>Элемент 2</el>
</root>";
$dom->loadXML($xml); // Загружаем в объект domDocument XML-разметку
echo htmlspecialchars($dom->saveXML()); // Выгрузка в окно браузера XML-документа
echo "<br />"; // Переход на новую строку
$dom->save("doc.xml"); // Сохраняем XML-документ в файл
$dom->load("doc.xml"); // Выгружаем из файла XML-документ
echo htmlspecialchars($dom->saveXML()); // Выгрузка в окно браузере XML-документа (уже из файла)
?>
Главное, что Вы должны усвоить из данного кода - это то, как можно сохранять XML-документы в файл и загружать из этих файлов обратно в объект domDocument. Это самое основное, что постоянно используется практически везде, где вообще имеются XML-файлы.
-
- Михаил Русаков
Комментарии (4):
Ошибка в примере. ПХП код не в своей скорлупе, <?php ?>
Ответить
Михаил, а чем различаются версии xml документов?
Ответить
От этого зависит то, как он будет интерпретироваться.
Ответить
XML-документ создаётся, а в браузере выдаёт вот такое: Warning: DOMDocument::loadXML() [domdocument.loadxml]: Input is not proper UTF-8, indicate encoding ! Bytes: 0xDD 0xEB 0xE5 0xEC in Entity, line: 3 in Z:\home\domain\www\load_xml.php on line 8 <?xml version="1.0" encoding="utf-8"?> Warning: DOMDocument::load() [domdocument.load]: Start tag expected, '<' not found in file:///z:/home/domain/www/doc.xml, line: 2 in Z:\home\domain\www\load_xml.php on line 12 <?xml version="1.0" encoding="utf-8"?>
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.