Обход дерева объектов

Для получения значения текущего узла используют метод DomNode->node_value() или DomNode->get_content() для получения содержимого узла.

Для получения значения атрибута используется метод DomElement‑>get_attribute(attr_name). А метод DomNode->child_nodes() возвращает массив потомков данного узла.

 

Для различия объектов по типам, т.е. определения, является ли узел элементом (тегом), текстом, атрибутом и т.п., используют специальные константы. XML_ELEMENT_NODE определяет, является ли узел элементом, XML_ATTRIBUTE_NODE определяет, является ли узел атрибутом, и XML_TEXT_NODE определяет, является ли узел фрагментом текста. Эти константы имеют целочисленные значения 1, 2 и 3 соответственно.

// Обход дерева XML

<?

$xmlstr = join('',file(student.xml'));

if(!$dom = domxml_open_mem($xmlstr)) {

echo "Ошибка при разборе документа\n";

exit;

}

$root = $dom->document_element();

// Получаем массив потомков родительского узла

// (в нашем случае это массив <student>)

$nodes = $root->child_nodes();

print_r($nodes);

echo "<hr>";

// Начинаем обработку каждого узла в массиве

foreach($nodes as $node){

if ($node->tagname==' student '){

// Создаем массив, куда будем собирать информацию

// о рассматриваемом студенте

$currentStud = array();

// Получаем id студента,

$ currentStud ['id'] = $node->get_attribute('id');

// Получаем всю информацию о студенте

// (<name>,<birth> и т.д.)

$student_info = $node->child_nodes();

// Перебираем все дочерние узлы $node

foreach ($student _info as $info){

// проверяем, является ли узел

// элементом (xml-тегом)

if ($info->type==

XML_ELEMENT_NODE) {

$currentStud[$info->tagname] =

$info->get_content();

}

}

// выводим на экран полученные массивы

print_r ($currentStud);

echo "<br>";

}

}

?>

 








Дата добавления: 2015-08-26; просмотров: 758;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.