Метод asXML
также может работать с Xpath:Пример 2.
Использование метода asXML() в работе с Xpath// Продолжение примера, указанного выше.
/* Поиск
$result = $xml->xpath('/a/b/c');
while(list( , $node) = each($result)) {
echo $node->asXML(); //
}
?>
attributes
SimpleXMLElement-attributes
SimpleXMLElement-attributes -- Возвращает атрибуты элемента.
Описание
SimpleXMLElement simplexml_element->attributes ( [string data] )
Эта функция возвращает названия и значения атрибутов выбранного xml-элемента.
Замечание:
SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с испольванием var_dump() или каких-либо других средств анализа объектов.Пример 1.
Интепретация XML-строки$string = <<
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] )
Данный метод находит дочерние элементы для заданного элемента.
Замечание:
SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.Пример 1.
Использование метода children()$xml = simplexml_load_string(
'
');
echo '
';
foreach ($xml->children() as $site) {
echo '
foreach ($site->children() as $subsite) {
echo '
}
}
echo '';
?>
Данный пример выведет:
spravkaweb.ru links.spravkaweb.ru forum.spravkaweb.ru server.spravkaweb.ruyandex.ru money.yandex.ru map.yandex.ru market.yandex.ru
xpath
SimpleXMLElement-xpath
SimpleXMLElement-xpath -- Выполняет Xpath-запрос к XML-данным
Описание
array SimpleXMLElement->xpath ( string path )
Метод xpath
ищет дочерние элементы элемента SimpleXML, путь к которому указан в параметреПример 1.
Xpath$string = <<
XML;
$xml = simplexml_load_string($string);
/* Поиск по
$result = $xml->xpath('/a/b/c');
foreach ($result as $node) {
echo '/a/b/c: ' . $node . '
';
}
/* Относительные дорожки также работают ... */
$result = $xml->xpath('b/c');
foreach ($result as $node) {
echo 'b/c: ' . $node . '
';
}
?>
Данный скрипт выведет:
/a/b/c: text/a/b/c: stuffb/c: textb/c: stuff
Два результата в данном случае одинаковы.
simplexml_import_dom
simplexml_import_dom
(PHP 5)
simplexml_import_dom -- Возвращает объект SimpleXMLElement
, созданный из DOM-объекта.Описание
SimpleXMLElement simplexml_import_dom ( DOMNode node [, string class_name] )
Данная функция берет объект DOM и создает на его основе объект SimpleXML
. Этот новый объект может быть использован как нормальный объект SimpleXML. Если во время создания объекта произошли ошибки, метод вернетПример 1.
Import DOM$dom = new domDocument;
$dom->loadXML('
if (!$dom) {
echo 'Ошибка парсинга документа!';
exit;
}
$s = simplexml_import_dom($dom);
echo $s->site[0]->url; // spravkaweb.ru
?>
simplexml_load_file
simplexml_load_file
(PHP 5)
simplexml_load_file -- Интерпретирует XML-файл в объект
Описание
object simplexml_load_file ( string filename [, string class_name [, int options]] )
Эта функция интерпретирует файл