SimpleXML - Come stampare gli indici?

  • Creatore Discussione Creatore Discussione Stenan
  • Data di inizio Data di inizio

Stenan

Nuovo Utente
15 Apr 2008
7
0
0
Ho un file xml dal nome prova_forum.xml, così strutturato:

<?xml version="1.0" standalone="yes"?>
<prove>
<prova>
<titolo>Prova 1</titolo>
<cliente>15</cliente>
<didascalia>Didascalia 1</didascalia>
</prova>
<prova>
<titolo>Prova 2</titolo>
<cliente>16</cliente>
<didascalia>Didascalia 2</didascalia>
</prova>
</prove>

In PHP, utilizzo SimpleXML per caricarlo nella variabile $xml in questo modo:

$percorso_xml = 'prova_forum.xml';
$xml = simplexml_load_file($percorso_xml);

Desidero stampare i tag <titolo>, quindi procedo a questo modo utilizzando xpath:

foreach ($xml->xpath('//prova') as $p) {
echo $p->titolo, '<BR>';
}

L'output è il seguente, come aspettato:

Prova 1
Prova 2

Tutto ok fin qui. Ora ecco il problema: vorrei che mediante il ciclo foreach, insieme al tag <titolo> venisse stampata anche la relativa posizione all'interno dell'array, qualcosa come segue:

0 - Prova 1
1 - Prova 2

dove 0 e 1 rappresentano appunto la posizione dei relativi tag all'interno dell'originale xml, nel quale Prova 1 è il titolo relativo alla posizione prova[0], e Prova 2 è il titolo relativo alla posizione prova[1].

Non riesco a trovare una soluzione, sarei molto grato a chiunque fosse in grado di aiutarmi.

Stefano
 
Perchè non metti un semplice contatore?

PHP:
$i = 0;
foreach ($xml->xpath('//prova') as $p) {
echo ++$i . ' - ' . $p->titolo . '<BR>';
}
 

Discussioni simili