DOM XML PHP5 - ошибка Cannot use string offset as an array

rashn

Новичок
DOM XML PHP5 - ошибка Cannot use string offset as an array

Привет всем!

Есть такой скрипт (взят из FAQ), на серваке стоит PHP 5.1.6

<?php

$doc = new DOMDocument();
$doc->load('xml.html');

if ($doc->hasChildNodes())
{
echo "<br>Have a children</br>";
print_r(xml2array($doc));
}

function xml2array($nrt)
{
$return=array();
foreach($nrt->childNodes as $nc)
($nc->hasChildNodes())
?($nrt->firstChild->nodeName== $nrt->lastChild->nodeName&&$nrt->childNodes->length>1)
?$return[$nc->nodeName][]=xml2array($item)
:$return[$nc->nodeName]=xml2array($nc)
:$return=$nc->nodeValue;
return $return;
}


?>


Как я не бился, как не трудился, все равно выдает ошибки:

Warning: Invalid argument supplied for foreach() in /usr/home/clients/rashid_ftp0/domains/magazinpodarkov.ru/html/xml.php on line 15
Fatal error: Cannot use string offset as an array in /usr/home/clients/rashid_ftp0/domains/magazinpodarkov.ru/html/xml.php on line 18

ЧИТАЛ ПРО БАГ ВЕРСИИ 5.0 НО КАК С НИМ БОРОТЬСЯ НЕ НАШЕЛ.

Помогите уважаемые мастера
 

tony2001

TeaM PHPClub
>$return[$nc->nodeName][]=xml2array($item) :$return[$nc->nodeName]=xml2array($nc)
кривой код - Cannot use string offset as an array
 

rashn

Новичок
я понимаю что кривой - но он взят 1:1 из мануала (чуток подправлен - эхо добавлено)

Вот и прошу - помогите подправить код чтобы работать начал

-~{}~ 05.09.06 16:22:

Сам решил, методом тыка, вот кому если надо рабочий скрипт по размбору xml2array на php используя DOM XML:

<?php

$doc = new DOMDocument();
$doc->preserveWhiteSpace=false;
$doc->load('xml.html');

if ($doc->hasChildNodes())
{
echo "<br>Have a children</br>";
print_r(xml2array($doc));
}

function xml2array($n)
{
$return=array();
foreach($n->childNodes as $nc)
($nc->hasChildNodes())
?($n->firstChild->nodeName== $n->lastChild->nodeName && $n->childNodes->length>1)
?$return[$nc->nodeName][]=xml2array($nc)
:$return[$nc->nodeName]=xml2array($nc)
:$return=$nc->nodeValue;
return $return;
}

?>
 
Сверху