Parser un fichier xml
cherifa20
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
jeremy.s Messages postés 1226 Date d'inscription Statut Membre Dernière intervention -
jeremy.s Messages postés 1226 Date d'inscription Statut Membre Dernière intervention -
bonjour j'ai une petite question s'il vous plait j'ai un fichier xml et je veux recuperer la date de chaque pays voila le fichier xml
Article xml:lang="FR" handle="Meteo" type="Local">
<Location id="07157000" continent="EU" name_fr="Paris" altitude="108" latitude="49.02" longitude="2.53" type="Town">
<Day val="20130712">
<TempMor>11</TempMor>
<TempAft>26</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>8</Force>
<Dir>N</Dir>
<Source>modell</Source>
</Day>
<Day val="20130713">
<TempMor>15</TempMor>
<TempAft>27</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>8</Force>
<Dir>NE</Dir>
<Source>modell</Source>
</Day>
<Day val="20130714">
<TempMor>16</TempMor>
<TempAft>28</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>6</Force>
<Dir>N</Dir>
<Source>modell</Source>
</Day>
</Location>
<Location id="06590000" continent="EU" name_fr="Luxembourg" altitude="376" latitude="49.62" longitude="6.22" type="Town">
<Day val="20130712">
<TempMor>12</TempMor>
<TempAft>23</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>4</Force>
<Dir>W</Dir>
<Source>modell</Source>
</Day>
<Day val="20130713">
<TempMor>12</TempMor>
<TempAft>23</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>6</Force>
<Dir>N</Dir>
<Source>modell</Source>
</Day>
<Day val="20130714">
<TempMor>12</TempMor>
<TempAft>24</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>4</Force>
<Dir>NW</Dir>
<Source>modell</Source>
</Day>
</Location>
......
pour l instant j arrive a parser le fichier xml ça ma fiche:
Day:
TempMor:11
TempAft:26
Force:8
Dir:N
.....
mais le probleme day ne s affiche pas et voila le code que j'ai mis
<?php
//Function to convert date format
function ConvertDate($date)
{
$timezone = new DateTimeZone('UTC');
$dateTime = DateTime::createFromFormat('Ymd', $date, $timezone);
echo $dateTime->format('m/d');
}
$xml = simplexml_load_file('meteo.xml');
$items = $xml->xpath('*/Day');
$query =$xml->xpath('Location/Day'); // had les expression
foreach($query as $q) {
echo '<br>';
echo $q->Day['val'];
}
foreach($items as $item) {
echo '<br>Day :'.$item->Day['val'].'<br>TempMor :',$item->TempMor.'<br>TempAft :',$item->TempAft.'<br>Force :',$item->Force.'<br>Dir :',$item->Dir.'<br>----<br>' ;
}
?>
aidez moi s'il vous plait
Article xml:lang="FR" handle="Meteo" type="Local">
<Location id="07157000" continent="EU" name_fr="Paris" altitude="108" latitude="49.02" longitude="2.53" type="Town">
<Day val="20130712">
<TempMor>11</TempMor>
<TempAft>26</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>8</Force>
<Dir>N</Dir>
<Source>modell</Source>
</Day>
<Day val="20130713">
<TempMor>15</TempMor>
<TempAft>27</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>8</Force>
<Dir>NE</Dir>
<Source>modell</Source>
</Day>
<Day val="20130714">
<TempMor>16</TempMor>
<TempAft>28</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>6</Force>
<Dir>N</Dir>
<Source>modell</Source>
</Day>
</Location>
<Location id="06590000" continent="EU" name_fr="Luxembourg" altitude="376" latitude="49.62" longitude="6.22" type="Town">
<Day val="20130712">
<TempMor>12</TempMor>
<TempAft>23</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>4</Force>
<Dir>W</Dir>
<Source>modell</Source>
</Day>
<Day val="20130713">
<TempMor>12</TempMor>
<TempAft>23</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>6</Force>
<Dir>N</Dir>
<Source>modell</Source>
</Day>
<Day val="20130714">
<TempMor>12</TempMor>
<TempAft>24</TempAft>
<Txt_fr>bien ensoleillé</Txt_fr>
<Symb>90</Symb>
<Force>4</Force>
<Dir>NW</Dir>
<Source>modell</Source>
</Day>
</Location>
......
pour l instant j arrive a parser le fichier xml ça ma fiche:
Day:
TempMor:11
TempAft:26
Force:8
Dir:N
.....
mais le probleme day ne s affiche pas et voila le code que j'ai mis
<?php
//Function to convert date format
function ConvertDate($date)
{
$timezone = new DateTimeZone('UTC');
$dateTime = DateTime::createFromFormat('Ymd', $date, $timezone);
echo $dateTime->format('m/d');
}
$xml = simplexml_load_file('meteo.xml');
$items = $xml->xpath('*/Day');
$query =$xml->xpath('Location/Day'); // had les expression
foreach($query as $q) {
echo '<br>';
echo $q->Day['val'];
}
foreach($items as $item) {
echo '<br>Day :'.$item->Day['val'].'<br>TempMor :',$item->TempMor.'<br>TempAft :',$item->TempAft.'<br>Force :',$item->Force.'<br>Dir :',$item->Dir.'<br>----<br>' ;
}
?>
aidez moi s'il vous plait
A voir également:
- Parser un fichier xml
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
8 réponses
Salut !
Déjà le choix de simpleXML est bon.
Il y a ce que tu souhaites faire dans l'exemple #5 :
https://www.php.net/manual/fr/simplexml.examples-basic.php
;-)
EDIT : Plus d'infos ici aussi : https://www.php.net/manual/fr/simplexmlelement.attributes.php
Jérémy
Déjà le choix de simpleXML est bon.
Il y a ce que tu souhaites faire dans l'exemple #5 :
https://www.php.net/manual/fr/simplexml.examples-basic.php
;-)
EDIT : Plus d'infos ici aussi : https://www.php.net/manual/fr/simplexmlelement.attributes.php
Jérémy
Merci jeremy, mais j'ai deja vu cette exemple moi ce que je veux afficher c'est le DAy commeça:
Day:12/07
TempMor:11
TempAft:26
Force:8
Dir:N
et puisque j'ai plusieurs Day je c pa comment le faire
voila un exemple de ce que je veux avoir :
Paris
Day: 07/12
Temp Matin : 11
Temp AM : 26
_________________________
DAy : 07/13
Temp Matin : 15
Temp AM : 27
_____________________
DAy : 07/14
Temp Matin : 16
Temp AM : 28
--------------
Luxembourg
DAy : 07/12
Temp Matin : 12
Temp AM : 23
DAy : 07/13
Temp Matin : 12
Temp AM : 23
DAy : 07/14
Temp Matin : 12
Temp AM : 24
Day:12/07
TempMor:11
TempAft:26
Force:8
Dir:N
et puisque j'ai plusieurs Day je c pa comment le faire
voila un exemple de ce que je veux avoir :
Paris
Day: 07/12
Temp Matin : 11
Temp AM : 26
_________________________
DAy : 07/13
Temp Matin : 15
Temp AM : 27
_____________________
DAy : 07/14
Temp Matin : 16
Temp AM : 28
--------------
Luxembourg
DAy : 07/12
Temp Matin : 12
Temp AM : 23
DAy : 07/13
Temp Matin : 12
Temp AM : 23
DAy : 07/14
Temp Matin : 12
Temp AM : 24
Tu fais un foreach sur la balise Location dans un premier temps.
Ensuite dedans un foreach sur les balises Day où tu écris l'attribut de la balise puis le contenu de la balise tempMor et tempAft
Tu veux des indications pour le code où tu sais faire ?
Ensuite dedans un foreach sur les balises Day où tu écris l'attribut de la balise puis le contenu de la balise tempMor et tempAft
Tu veux des indications pour le code où tu sais faire ?
oui s'il vous j'aimerai bien a voir le code parce que ça fait 2jours que je test et ça marche toujours pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
$xml = new SimpleXMLElement('meteo.xml', NULL, TRUE);
foreach($xml->Location as $l){
foreach($l->Day as $d){
echo 'Date : ' . $d['val'];
echo 'Temps matin : ' . $d->TempMor;
echo 'Temps après midi : ' . $d->TempAft;
}
}
Essaye ca ! Et dis moi les erreurs si y'en a !
foreach($xml->Location as $l){
foreach($l->Day as $d){
echo 'Date : ' . $d['val'];
echo 'Temps matin : ' . $d->TempMor;
echo 'Temps après midi : ' . $d->TempAft;
}
}
Essaye ca ! Et dis moi les erreurs si y'en a !
non jeremy ça marche pas voila le code et l erreur:
<?php
//Function to convert date format
function ConvertDate($date)
{
$timezone = new DateTimeZone('UTC');
$dateTime = DateTime::createFromFormat('Ymd', $date, $timezone);
echo $dateTime->format('m/d');
}
$xml = simplexml_load_file('meteo.xml');
//parcours des fils de Location
foreach($xml->Location as $l) {
foreach($l->Day as $d){
echo 'Date :'.$d->['val'], '<br>',
'Tempor :'.$d->TempMor, '<br>',
'TempAft :'.$d->TempAft, '<br>',
'Force :'.$d->Force, '<br>',
'Dir :'.$d->Dir, '<br>';
echo "<br>--<br>";
}
}
?>
Parse error: syntax error, unexpected '[', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in C:\wamp\www\N\index.php on line 15
<?php
//Function to convert date format
function ConvertDate($date)
{
$timezone = new DateTimeZone('UTC');
$dateTime = DateTime::createFromFormat('Ymd', $date, $timezone);
echo $dateTime->format('m/d');
}
$xml = simplexml_load_file('meteo.xml');
//parcours des fils de Location
foreach($xml->Location as $l) {
foreach($l->Day as $d){
echo 'Date :'.$d->['val'], '<br>',
'Tempor :'.$d->TempMor, '<br>',
'TempAft :'.$d->TempAft, '<br>',
'Force :'.$d->Force, '<br>',
'Dir :'.$d->Dir, '<br>';
echo "<br>--<br>";
}
}
?>
Parse error: syntax error, unexpected '[', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in C:\wamp\www\N\index.php on line 15