52680.fb2 Справочник по PHP - читать онлайн бесплатно полную версию книги . Страница 60

Справочник по PHP - читать онлайн бесплатно полную версию книги . Страница 60

Для того, чтобы сравнивать элемент или атрибут со строковыми значениями, или передавать содержание элемента или атрибута в функцию, которая использует строковое значение передаваемого параметра, вы должны использовать элементы и атрибуты как строки с признаком (string). В противном случае PHP воспримет передаваемое значение как объект.

<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);

if ((string) $xml-&gt;movie-&gt;title == 'PHP: Behind the Parser') {

print 'Мой любимый фильм.';

}

htmlentities((string) $xml-&gt;movie-&gt;title);

?>

Пример 6. Использование Xpath

В SimpleXML включена поддержка запросов Xpath. Поиск всех элементов :

<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);

foreach ($xml-&gt;xpath('//character') as $character) {

echo $character-&gt;name, ' съиграл ', $character-&gt;actor, '&lt;br /&gt;';

}

?>

'//' служит групповым символом. Чтобы задать абсолютный путь, требуется убрать один слеш.

Пример 7. Задание новых значений

Данные в SimpleXML не могут быть постоянными. Объект учитывает изменения всех его элементов.

<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);

$xml-&gt;movie[0]-&gt;characters-&gt;character[0]-&gt;name = 'Miss Coder';

echo $xml-&gt;asXML();

?>

Результатом вышеуказанного примера будет новый XML-документ, идеентичный оригиналу за исключением того, что в новом XML-документе будет вместо Ms. Coder будет Miss Coder.

Пример 8. Взаимодействие с DOM

PHP имеет механизм конвертации XML-документов из формата SimpleXML в DOM и обратно. Следующий пример показывает как конвертировать DOM-элемент в SimpleXML-элемент:

<?php

$dom = new domDocument;

$dom-&gt;loadXML('&lt;books&gt;&lt;book&gt;&lt;title&gt;blah&lt;/title&gt;&lt;/book&gt;&lt;/books&gt;');

if (!$dom) {

echo 'Ошибка преобразования документа';

exit;

}

$s = simplexml_import_dom($dom);

echo $s-&gt;book[0]-&gt;title;

?>

Содержание:

SimpleXMLElement->asXML -- Возвращает правильно сформированный XML-документ

SimpleXMLElement->attributes -- Возвращает атрибуты элемента.

SimpleXMLElement->children -- Возвращает дочерние элементы для заданного элемента

SimpleXMLElement->xpath -- Выполняет Xpath-запрос к XML-данным

simplexml_import_dom -- Возвращает объектSimpleXMLElement, созданный из DOM-объекта.

simplexml_load_file -- Интерпретирует XML-файл в объект

simplexml_load_string -- Интерпретирует строку с XML в объект

SimpleXML

Введение

SimpleXML предоставляет очень простой в восприятии, интуитивно-понятный доступ к XML-документам, позволяющий совершать разнообразные операции с элементами XML-документа и их атрибутами.