Lettura file XML

  • Creatore Discussione Creatore Discussione Emix
  • Data di inizio Data di inizio

Emix

Utente Attivo
15 Feb 2010
596
0
16
Buongiorno a tutti,
ho seguito la vostra guida per la lettura di un file XML.
Spiegata bene e tutto quanto. Il problema sorge perche a differenza dell'esempio, io ho più strati dello stesso XML.
XML che funziona normalmente:
Codice:
<?xml version="1.0" encoding="utf-8"?>
<stazione>
 <Anagrafica>
    <IDParco>1772</IDParco>
    <SiglaParco>N.RSP</SiglaParco>
    <mmComporto>59</mmComporto>
    <TipoParco>NOL</TipoParco>
    <RiceveDaParcoDiverso>True</RiceveDaParcoDiverso>
    <AutorizzaDropOff>True</AutorizzaDropOff>
 </Anagrafica>
 <Recapito>
    <IDIndirizzo>3</IDIndirizzo>
    <RagioneSociale>EdilFar Rent</RagioneSociale>
    <Indirizzo>Piazza Pio XI 61</Indirizzo>
    <Citta>Roma</Citta>
    <Prov>RM</Prov>
    <Cap>00165</Cap>
    <Telefono>0666691223</Telefono>
    <Fax>068078733</Fax>
 </Recapito>
</stazione>

Il problema è che io nello stesso file ne ho 10 di questi segmenti... tutti composti come quello descritto sopra ma con dati differenti...

Come faccio a leggerli? Io ora utilizzo questo codice :

PHP:
<?php

$xml = simplexml_load_file('stazioni.xml');

echo "<h3>Stazioni salvate nel file stazioni.xml (".count($xml->Anagrafica).")</h3>";
	foreach($xml->Anagrafica as $anagrafica)
	{
    echo "ID Parco: <b>" .$anagrafica->IDParco."</b><br />";
	echo "Tipo Parco: <b>" .$anagrafica->TipoParco."</b><br />";
}
foreach ($xml->Recapito as $recapito)
{
	echo "ID Inrizzo: <b>" .$recapito->IDIndirizzo."</b><br>";
	echo "Indirizzo: <b>" .$recapito->Indirizzo."</b><br>";
	echo "Città: <b>" .$recapito->Citta."</b><br>";
	echo "Provincia: <b>" .$recapito->Prov."</b><br>";
	echo "Cap: <b>" .$recapito->Cap."</b><br>";
	echo "Telefono: <b>" .$recapito->Telefono."</b><br>";
	}

?>

Grazie in anticipo...
 
se ho capito, anagrafica e recapito vanno a coppie (anche se non mi spiego perché recapito non è un sottoinsieme di anagrafica), in ogni caso, la mia soluzione,
PHP:
<?php 

$xml = simplexml_load_file('stazioni.xml'); 

$i = count($xml->Anagrafica);

echo "<h3>Stazioni salvate nel file stazioni.xml (".$i.")</h3>"; 

$j=0;
while ($j < $i)
{
  $anagrafica = $xml->Anagrafica[$j];
  $recapito = $xml->Recapito[$j];

  echo "ID Parco: <b>" .$anagrafica->IDParco."</b><br />"; 
  echo "Tipo Parco: <b>" .$anagrafica->TipoParco."</b><br />"; 

  echo "ID Inrizzo: <b>" .$recapito->IDIndirizzo."</b><br />"; 
  echo "Indirizzo: <b>" .$recapito->Indirizzo."</b><br />"; 
  echo "Città: <b>" .$recapito->Citta."</b><br />"; 
  echo "Provincia: <b>" .$recapito->Prov."</b><br />"; 
  echo "Cap: <b>" .$recapito->Cap."</b><br />"; 
  echo "Telefono: <b>" .$recapito->Telefono."</b><br /><br />";
  $j++; 
}
?>
se non avessi capito, butta tutto nel cestino
ciao
Marino
 

Discussioni simili