Skip to main content

For loop while parsing xml in php?



I am trying to create a for loop that will parse out different elements of xml doc using php. It parses when I put the number of the entry in the line:







$s = $xml->entry[0]->children($namespaces['s']);







However I tried to replace the number with "i" to count through each of the entries in the xml doc and I get an error (Fatal error: Call to a member function children() on a non-object in /home/content/c/a/s/cashme/html/buylooper/xml.php on line 10). How do I resolve this?







<?php

$url = 'xml-file.xml';

$xml = simplexml_load_file($url);

$namespaces = $xml->entry->getNameSpaces(true);



for ($i = 0; $i <= 10; $i += 1){



$s = $xml->entry[i]->children($namespaces['s']);

$title = $s->product->title;



//print

echo $retailer;



}

?>




Comments

  1. You need to use $i, instead of i.

    As a side note:

    This bug should become very obvious on a development machine with:


    display_errors turned on, and
    error_reporting set to E_ALL (or even E_ALL ^ E_NOTICE)


    you would get a warning like Use of undefined constant i - assumed 'i'

    (unless you have defined i as a constant somewhere but that's an odd constant name)

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?