Доступ к элементам через Dom

andmak

Новичок
Доступ к элементам через Dom

Помогите найти ошибку!
Как пройтись по внутренним элементам-узлам,почему к ним нет доступа?
<?php
//--file:
//<U name="NameNodes" C="1"><f dx="55" dy="57" ></f><f dx="51" dy="53"></f><f dx="51" dy="58"></f></U>
//---------------------------------------------------------
if (!$dom = domxml_open_file("file.xml")) {
echo "Error while parsing the document\n";
return;
};
$root = $dom->document_element();
$name=$root->get_attribute('name');
echo "Main name =".$name;
$node_array =$root->get_elements_by_tagname("U");

for ($i = 0; $i<count($node_array); $i++) {
$node = $node_array[$i];
$dx=$node-> get_attribute('px');
$dy=$node-> get_attribute('py');
echo "dx=".$dx." dy=".$dy;
};
?>
 

andmak

Новичок
Он берет набор узлов <f> в масив.Видно что то не может он его туда загнать
 

Andreika

"PHP for nubies" reader
andmak
а почему именно массив узлов f ? где это f указывается?
 

andmak

Новичок
Я думаю потому что элементы <f> принадлежат узлу <U>
Может я не так понимаю работу метода get_elements_by_tagname ?
 

Andreika

"PHP for nubies" reader
нинаю даже.. вроде как чтобы выбрать "элементы которые принадлежат" U используется child_nodes, а сия функция наверное выбирает из потомков те, у кого tagName совпадает с параметром функции
 

slach

Новичок
какую ошибку твой код говорит то?
где затык?
var_dump($node_array);
сделай перед циклом
может ты себе неправильно результат работы getElementByTagName представляешь?
 

alekciy

Новичок
andmak
Как пройтись по внутренним элементам-узлам,почему к ним нет доступа?
Потому что ты пытаешь получить к ним доступ использую корневой элемент, а нужно обращаться к документу. Т.е.

$node_array =$root->get_elements_by_tagname("U");

когд должно быть:

$node_array =$dom -> get_elements_by_tagname("U");



array DomDocument ->get_elements_by_tagname ( string name )
 
Сверху