White cat - Справочник по PHP Страница 20
- Категория: Компьютеры и Интернет / Прочая околокомпьтерная литература
- Автор: white cat
- Год выпуска: неизвестен
- ISBN: нет данных
- Издательство: неизвестно
- Страниц: 55
- Добавлено: 2019-05-28 14:47:47
White cat - Справочник по PHP краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «White cat - Справочник по PHP» бесплатно полную версию:Вниманию читателей предлагается справочник по PHP.Справочник предназначается для людей, уже освоивших азы программирования на языке PHP.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.
White cat - Справочник по PHP читать онлайн бесплатно
SimpleXMLElement->children -- Возвращает дочерние элементы для заданного элемента
SimpleXMLElement->xpath -- Выполняет Xpath-запрос к XML-данным
simplexml_import_dom -- Возвращает объектSimpleXMLElement, созданный из DOM-объекта.
simplexml_load_file -- Интерпретирует XML-файл в объект
simplexml_load_string -- Интерпретирует строку с XML в объект
SimpleXML
Введение
SimpleXML предоставляет очень простой в восприятии, интуитивно-понятный доступ к XML-документам, позволяющий совершать разнообразные операции с элементами XML-документа и их атрибутами.
Требования
SimpleXML присутствует в PHP начиная с версии 5.
Установка
SimpleXML установлен в PHP по умолчанию. Для того, чтобы отключить это расширение, перекомпилируйте PHP с ключом --disable-simplexml.
Примеры
Практически все примеры используют XML-документ. Вместо того, чтобы каждый раз повторять содержание XML-документа в каждом примере, мы поместим XML-документ в файл, который будет читать при помощи функции simplexml_load_file().
<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
<movie>
<title>PHP: Behind the Parser</title>
<characters>
<character>
<name>Ms. Coder</name>
<actor>Onlivia Actora</actor>
</character>
<character>
<name>Mr. Coder</name>
<actor>El Act&#211;r</actor>
</character>
</characters>
<plot>
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.
</plot>
<rating type="thumbs">7</rating>
<rating type="stars">5</rating>
</movie>
</movies>
XML;
?>
Простоту работы с SimpleXML можно продемонстрировать извлечением текста из заданного элемента XML-документа.
Пример 2. Получение текста в <plot>
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
echo $xml->movie[0]->plot; // "So this language. It's like..."
?>
Пример 3. Работа с группой элементов в SimpleXML
Можно применять циклы для получения дочерних элементов заданного элемента (если дочерние элементы существуют).
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
/* Для каждого элемента <movie> мы отображаем элемент . */
foreach ($xml->movie as $movie) {
echo $movie->plot, '<br />';
}
?>
Пример 4. Использование атрибутов
Выше было показано как работать с элементами XML-документа и их значениями. SimpleXML также имеет доступ к атрибутам элементов. Атрибуты указанного элемента доступны как ассоциативный массив данного элемента.
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
/* Получение доступа к атрибутам элементов <rating> для первого кино.*/
foreach ($xml->movie[0]->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->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, '<br />';
}
?>
'//' служит групповым символом. Чтобы задать абсолютный путь, требуется убрать один слеш.
Пример 7. Задание новых значений
Данные в SimpleXML не могут быть постоянными. Объект учитывает изменения всех его элементов.
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
$xml->movie[0]->characters->character[0]->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('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'Ошибка преобразования документа';
exit;
}
$s = simplexml_import_dom($dom);
echo $s->book[0]->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 в объект
asXML
SimpleXMLElement-asXML
SimpleXMLElement-asXML -- Возвращает правильно сформированный XML-документ
Описание
mixed SimpleXMLElement->asXML ( [string filename] )
Метод asXML формирует данные в XML версии 1.0.
Список параметров
Возвращаемые значения
Если имя файла задано, то метод запишет XML данные в указанный файл. В противном случае метод возвратит XML-данные в виде строки.
Замечания
Если в исходном документе в заголовках была указана кодировка XML-документа при помощи параметра encoding, то метод asXML возвратит XML-документ в указанной кодировке. Изменение кодировки XML-документа при помощи расширения SIMPLEXML невозможно.
Примеры
Пример 1. Вывести XML
<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;
$xml = simplexml_load_string($string);
echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...
?>
Метод asXML также может работать с Xpath:
Пример 2. Использование метода asXML() в работе с Xpath
<?php
// Продолжение примера, указанного выше.
/* Поиск <a><b><c> */
$result = $xml->xpath('/a/b/c');
while(list( , $node) = each($result)) {
echo $node->asXML(); // <c>text</c> и <c>stuff</c>
}
?>
attributes
SimpleXMLElement-attributes
SimpleXMLElement-attributes -- Возвращает атрибуты элемента.
Описание
SimpleXMLElement simplexml_element->attributes ( [string data] )
Эта функция возвращает названия и значения атрибутов выбранного xml-элемента.
Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с испольванием var_dump() или каких-либо других средств анализа объектов.
Пример 1. Интепретация XML-строки
<?php
$string = <<<XML
<users>
<user name="Evgen" age="27">[email protected]</user>
</users>
XML;
$xml = simplexml_load_string($string);
foreach($xml->users[0]->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}
?>
Данный пример выведет:
name="Evgen"age="27
children
SimpleXMLElement-children
SimpleXMLElement-children -- Возвращает дочерние элементы для заданного элемента
Описание
SimpleXMLElement simplexml_element->children ( [string nsprefix] )
Данный метод находит дочерние элементы для заданного элемента.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.