Traitement XML en PHP (récupération de certains attributs)

[Résolu/Fermé]
Signaler
Messages postés
59
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 avril 2015
-
Messages postés
59
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 avril 2015
-
Bonjour tout le monde,

je sais qu'il y a beaucoup de bibliothèques pour le traitement de fichiers XML en PHP, mais j'ai déjà essayé plusieurs manières.

mon soucis, j'essaie de récupérer des données via cet URL :

https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml , qui est un fichier XML.

ce qui m'intéresse, c'est les attributs "currency" et "rate" de ce fichier.

si vous avez des idées ou un petit script de quelques lignes, je suis preneur.

Merci d'avance,

Cordialement

2 réponses

Messages postés
2567
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
23 septembre 2021
461
Salut,

Via l'api DomDocument tu peux commencer par charger ton fichier grâce à la fonction load : https://www.php.net/manual/fr/domdocument.load.php
Puis on récupère les balises qui nous intéresses : https://www.php.net/manual/fr/domdocument.getelementsbytagname.php
Pour enfin récupérer les attributs : https://www.php.net/manual/fr/domelement.getattribute.php

Montre nous ce que tu as commencé si tu bloques :)

Bonne journée
Messages postés
59
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 avril 2015

Bonjour,

j'ai réussi a trouver une solution :


$aContext = array(
'http' => array(
'proxy' => 'proxy:8080',
'request_fulluri' => true,
),
);
$cxContext = stream_context_create($aContext);

$xml = file_get_contents("https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml", False, $cxContext);

$doc = new DOMDocument();
$tab = array();

if(@$doc->loadXML($xml))
{
$domliste = $doc->getElementsByTagName('Cube');

foreach($domliste as $c)
{
if($c->hasAttributes() && $c->getAttribute('currency'))
{
$tab[$c->getAttribute('currency')] = $c->getAttribute('rate');
}
}
}
else
{
echo "le document xml n'a pas pu être chargé";
}

echo '<pre>';
print_r($tab);
echo '</pre>';
?>