fork download
  1. <?php
  2. $xml_string = <<<XML
  3. <?xml version='1.0'?>
  4. <log>
  5. <gare Code="17192">
  6. <semaine jour="0">
  7. <train>840800</train>
  8. </semaine>
  9. <semaine jour="0">
  10. <train>2778</train>
  11. </semaine>
  12. <semaine jour="1">
  13. <train>840502</train>
  14. </semaine>
  15. <semaine jour="0">
  16. <train>840600</train>
  17. </semaine>
  18. <semaine jour="1">
  19. <train>5420</train>
  20. </semaine>
  21. <semaine jour="0">
  22. <train>5401</train>
  23. </semaine>
  24. <semaine jour="1">
  25. <train>840501</train>
  26. </semaine>
  27. <semaine jour="1">
  28. <train>840504</train>
  29. </semaine>
  30. <semaine jour="1">
  31. <train>5486</train>
  32. </semaine>
  33. <semaine jour="1">
  34. <train>840601</train>
  35. </semaine>
  36. </gare>
  37. </log>
  38. XML;
  39.  
  40. // On charge le xml à partir de la chaîne ci-dessous (pour la démo)
  41. $xml = simplexml_load_string($xml_string);
  42. /*
  43. Sinon on chargerait le xml à partir d'un fichier, comme ci-dessous
  44. $xml = simplexml_load_file("/chemin/vers/le/fichier.xml");
  45. */
  46. // Struture globale du xml : log(noeud racine) > gare > semaine > train
  47. foreach($xml->gare as $gare)
  48. {
  49. if(isset($gare["Code"])){
  50. echo "Gare #" . $gare["Code"] . PHP_EOL;
  51. }
  52.  
  53. foreach($gare->semaine as $semaine)
  54. {
  55. foreach($semaine->train as $train)
  56. {
  57. echo " -> train #" . $train . PHP_EOL;
  58. }
  59. }
  60. }
  61. echo PHP_EOL ;
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
Gare #17192
 -> train #840800
 -> train #2778
 -> train #840502
 -> train #840600
 -> train #5420
 -> train #5401
 -> train #840501
 -> train #840504
 -> train #5486
 -> train #840601