-
This is title1
This is desc1
You could use SimpleXMLElement::xpath
to return an array of the <item>
elements, then access the array's keys as you want.
foreach ($xml->xpath('/items/item') as $key => $item)
This is because simpleXML structures are not normal arrays but iterators who do not have an array index.
I don't know of any other solution than keeping track manually using a variable:
$index = 0;
$xml = simplexml_load_file('post.xml');
foreach($xml->item as $item )
{
....
$index++;
}
Heredoc
might try
<a href="#slide-{$key}">
You can use a for
loop instead of a foreach
like this :
$item = $xml->item;
$howMany = count($item);
for($i = 0; $i < $howMany; $i++){
echo <<<HTML
<li>
<div class="published">
<span class="day">13</span>
Sep 2010
</div>
<div class="summary">
<a href="#slide-$i">
<h3>$item->title</h3>
</a>
</div>
</li>
HTML;
}
AFAIK with heredocs format, you need to wrap variables in curly braces:
<a href="#slide-{$key}">
<h3>{$item->title}</h3>
</a>