<?
// сначала делаем то же,
// что и в предыдущем примере
$xmlstr = join('',file('persons.xml'));
if(!$dom = domxml_open_mem($xmlstr)) {
echo "Ошибка при разборе документа\n";
exit;
}
$root = $dom->document_element();
// Получаем массив потомков
// родительского узла
// (в нашем случае это массив )
$nodes = $root->child_nodes();
print_r($nodes);
echo "";
// Начинаем обработку каждого
// узла в массиве
foreach($nodes as $node){
// Если текущий узел – один
// из узлов , то
// продолжаем ее обработку,
// чтобы получить информацию
// об этой личности
if ($node->tagname=='person'){
// Создаем массив, куда
// будем собирать информацию
// о рассматриваемой личности
$currentPers = array();
// Получаем id личности,
// который хранится в атрибуте 'id'
$currentPers['id'] =
$node->get_attribute('id');
// Получаем массив потомков
// . Это вся
// информация о личности
// (, и т.д.)
$persons_info =
$node->child_nodes();
// Перебираем все дочерние
// узлы $node
foreach ($persons_info as $info){
// проверяем, является ли узел
// элементом (xml-тегом)
if ($info->type==
XML_ELEMENT_NODE) {
// тогда метод tagname
// возвратит имя этого
// элемента (тега), а метод
// get_content() –
// его содержимое
$currentPers[$info->tagname] =
$info->get_content();
}
}
// выводим на экран полученные
// массивы
print_r ($currentPers);
echo "
";
}
}
?>