Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Проблема с SimpleXML


Автор: Cosmologist 12.9.2008, 19:51
Изучаю на практике SimpleXML, простой пример из документации с моим XML не работает.
В чем может быть проблема?

Код

//не работает
$xml = simplexml_load_file('Arrays.xml');
echo $xml->category->sub_category->snippet[0]->description;

//работает 
$rss =  simplexml_load_file('http://partners.userland.com/nytRss/nytHomepage.xml');
echo $rss->channel->title;


кусок XML, весь приводить не буду - и так думаю будет ясно:
Код

<?xml version='1.0' encoding='UTF-8'?>
<category name="Algorithms">
<sub_category name="Arrays">
    <snippet name="(minus - subtract  ) arrays" author="mindf" date_modified="01 Dec 2000" date_entered="01 Dec 2000" rating="3.25">
    <description>
In this simple function you send two arrays and it gives you an array with the operation A-B,  elements on A that are not included on B.
    </description>
    <code>
function RestaDeArrays($vectorA,$vectorB)
         {
           $cantA=count($vectorA);
           $cantB=count($vectorB);
           $No_saca=0;
           for($i=0;$i&lt;$cantA;$i++)
                {
                 for($j=0;$j&lt;$cantB;$j++)
                      {
                       if($vectorA[$i]==$vectorB[$j])
                           $No_saca=1;
                      }

                 if($No_saca==0)
                    $nuevo_array[]=$vectorA[$i];
                   else
                   $No_saca=0;
                }

           return $nuevo_array;
         }

    </code>
    </snippet>
    <snippet name="a more readable option that &quot;print_r&quot;" author="Saibot" date_modified="02 Dec 2000" date_entered="02 Dec 2000" rating="3.80">
    <description>
....

Автор: gta4kv 12.9.2008, 20:04
Код

category[0]->sub_category[0]

вроде бы надо..

Автор: Cosmologist 15.9.2008, 20:03
gta4kv - все равно не работает, на экране пустота.
Может с XML-файлом что то не то?

Добавлено через 11 минут и 12 секунд
Код

print_r($xml->xpath('//snippet'));


такой способ кстати работоспособен - буду его использовать.
но все же интересно, почему первый вариант не работал?

Автор: MystDeim 30.9.2008, 12:54
Попробуйте:
Код

echo $xml->sub_category[0]->snippet[0]->description[0];

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)