PHP и XML
XML - это язык разметки, очень похожий на HTML. XML-документ представляет собой обычный текст и содержит теги, разделенные <и>. Между XML и HTML есть два больших различия:
- XML не определяет конкретный набор тегов, которые вы должны использовать.
- XML чрезвычайно требователен к структуре документа.
XML дает вам гораздо больше свободы, чем HTML. HTML имеет определенный набор тегов: теги <a> </a> окружают ссылку, <p> начинается абзац и так далее. Однако XML-документ может использовать любые теги, какие захотите. Поместите теги <rating> </rating> вокруг рейтинга фильма, теги <height> </height> вокруг чьего-либо роста. Таким образом, XML дает вам возможность создавать собственные теги.
XML очень строг, когда дело касается структуры документа. HTML позволяет играть быстро и свободно с некоторыми открывающими и закрывающими тегами. Но это не относится к XML.
Список HTML, недействительный XML
<ul>
<li>Braised Sea Cucumber
<li>Baked Giblets with Salt
<li>Abalone with Marrow and Duck Feet
</ul>
Это недопустимый XML-документ, потому что нет закрывающих тегов </li>, которые соответствовали бы трем открывающим тегам <li>. Каждый открытый тег в XML-документе должен быть закрыт.
Список HTML, который является допустимым XML
<ul>
<li>Braised Sea Cucumber</li>
<li>Baked Giblets with Salt</li>
<li>Abalone with Marrow and Duck Feet</li>
</ul>
Анализ XML-документа
Новое в PHP 5 SimpleXMLМодуль упрощает синтаксический анализ XML-документа. Он превращает XML-документ в объект, обеспечивающий структурированный доступ к XML.
Чтобы создать объект SimpleXML из XML-документа, хранящегося в строке, передайте строку в simplexml_load_string( ). Он возвращает объект SimpleXML.
пример
Попробуйте следующий пример -
<html>
<body>
<?php
$note=<<<XML
<note>
<to>Gopal K Verma</to>
<from>Sairamkrishna</from>
<heading>Project submission</heading>
<body>Please see clearly </body>
</note>
XML;
$xml=simplexml_load_string($note);
print_r($xml);
?>
</body>
</html>
Это даст следующий результат -
NOTE - Вы можете использовать функцию simplexml_load_file( filename) если у вас есть XML-контент в файле.
Полную информацию о функции синтаксического анализа XML можно найти в Справочнике по функциям PHP .
Создание XML-документа
SimpleXML хорош для анализа существующих XML-документов, но вы не можете использовать его для создания нового с нуля.
Самый простой способ сгенерировать XML-документ - это создать массив PHP, структура которого отражает структуру XML-документа, а затем выполнить итерацию по массиву, распечатав каждый элемент с соответствующим форматированием.
пример
Попробуйте следующий пример -
<?php
$channel = array('title' => "What's For Dinner",
'link' => 'http://menu.example.com/',
'description' => 'Choose what to eat tonight.');
print "<channel>\n";
foreach ($channel as $element => $content) {
print " <$element>";
print htmlentities($content);
print "</$element>\n";
}
print "</channel>";
?>
Это даст следующий результат -
http://menu.example.com/ Choose what to eat tonight.