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

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

Пример 4. Использование атрибутов

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

<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);

/* Получение доступа к атрибутам элементов &lt;rating&gt; для первого кино.*/

foreach ($xml-&gt;movie[0]-&gt;rating as $rating) {

switch((string) $rating['type']) { // Возвращает атрибуты как элементы массива

case 'thumbs':

echo $rating, ' thumbs up';

break;

case 'stars':

echo $rating, ' stars';

break;

}

}

?>

Пример 5. Сравнение элементов и их атрибутов с текстовыми значениями

Для того, чтобы сравнивать элемент или атрибут со строковыми значениями, или передавать содержание элемента или атрибута в функцию, которая использует строковое значение передаваемого параметра, вы должны использовать элементы и атрибуты как строки с признаком (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;