Примеры
Практически все примеры используют XML-документ. Вместо того, чтобы каждый раз повторять содержание XML-документа в каждом примере, мы поместим XML-документ в файл, который будет читать при помощи функции simplexml_load_file().
<?php $xmlstr = PHP: Behind the ParserMs. CoderOnlivia ActoraMr. CoderEl ActÓr So, this language. It's like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary.
75
XML;
Простоту работы с SimpleXML можно продемонстрировать извлечением текста из заданного элемента XML-документа.
Пример 2. Получение текста в <plot>
<?php include 'example.php'; $xml = simplexml_load_string($xmlstr); echo $xml->movie->plot; // "So this language. It's like..." ?>
Пример 3. Работа с группой элементов в SimpleXML
Можно применять циклы для получения дочерних элементов заданного элемента (если дочерние элементы существуют).
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
/* Для каждого элемента мы отображаем элемент . */
foreach ($xml->movie as $movie) {
echo $movie->plot, '';
}
?>
Пример 4. Использование атрибутов
Выше было показано как работать с элементами XML-документа и их значениями. SimpleXML также имеет доступ к атрибутам элементов. Атрибуты указанного элемента доступны как ассоциативный массив данного элемента.
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
/* Получение доступа к атрибутам элементов для первого кино.*/
foreach ($xml->movie->rating as $rating) {
switch((string) $rating) { // Возвращает атрибуты как элементы массива
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->movie->title == 'PHP: Behind the Parser') {
print 'Мой любимый фильм.';
}
htmlentities((string) $xml->movie->title);
?>
Пример 6. Использование Xpath
В SimpleXML включена поддержка запросов Xpath. Поиск всех элементов :
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
foreach ($xml->xpath('//character') as $character) {
echo $character->name, ' съиграл ', $character->actor, '';
}
?>
‘//’ служит групповым символом. Чтобы задать абсолютный путь, требуется убрать один слеш.
Пример 7. Задание новых значений
Данные в SimpleXML не могут быть постоянными. Объект учитывает изменения всех его элементов.
<?php include 'example.php'; $xml = simplexml_load_string($xmlstr); $xml->movie->characters->character->name = 'Miss Coder'; echo $xml->asXML(); ?>
Результатом вышеуказанного примера будет новый XML-документ, идеентичный оригиналу за исключением того, что в новом XML-документе будет вместо Ms. Coder будет Miss Coder.
Пример 8. Взаимодействие с DOM
PHP имеет механизм конвертации XML-документов из формата SimpleXML в DOM и обратно. Следующий пример показывает как конвертировать DOM-элемент в SimpleXML-элемент:
<?php
$dom = new domDocument;
$dom->loadXML('blah');
if (!$dom) {
echo 'Ошибка преобразования документа';
exit;
}
$s = simplexml_import_dom($dom);
echo $s->book->title;
?>














![[qt] преобразование между qbytearray и char, int, float (и его массивом) - русские блоги](http://fuzeservers.ru/wp-content/uploads/f/f/0/ff0cc6f3feaf7985a327da30ceb4d59e.gif)
![Клавиатура windows 10 вводит неправильные символы [простое решение]](http://fuzeservers.ru/wp-content/uploads/d/7/e/d7eb2e227a053bc5f7230e0cb87d7253.png)












