par
Saian » 13 févr. 2019, 22:23
Salut, y a surement plus simple mais avec les namespaces et compagnie... et je suis pas un spécialiste de la lecture de fichiers xml ^^
$content = file_get_contents('file.xml');
preg_match('`<Cube>[\S\s]*<\/Cube>`', $content, $matches);
$xml = simplexml_load_string($matches[0]);
$currency = $xml->xpath("//Cube[@currency='GBP']")[0];
echo $currency['rate']."\n";
PS : je n'arrivais pas à trouver le bon xpath pour extraire le noeud du document complet alors j'ai décidé d'extraire tous les noeuds Cube avant de les charger avec simple xml et comme ça le xpath fonctionne. ^^
Sinon y avait cette solution toute simple, mais elle me plait moins car on fait une boucle...
$xml = simplexml_load_file('file.xml');
foreach ($xml->Cube->Cube->Cube as $cube)
if ($cube['currency'] == 'GBP')
break ;
echo $cube['rate']."\n";
Salut, y a surement plus simple mais avec les namespaces et compagnie... et je suis pas un spécialiste de la lecture de fichiers xml ^^
[php]$content = file_get_contents('file.xml');
preg_match('`<Cube>[\S\s]*<\/Cube>`', $content, $matches);
$xml = simplexml_load_string($matches[0]);
$currency = $xml->xpath("//Cube[@currency='GBP']")[0];
echo $currency['rate']."\n";[/php]
PS : je n'arrivais pas à trouver le bon xpath pour extraire le noeud du document complet alors j'ai décidé d'extraire tous les noeuds Cube avant de les charger avec simple xml et comme ça le xpath fonctionne. ^^
Sinon y avait cette solution toute simple, mais elle me plait moins car on fait une boucle...
[PHP]$xml = simplexml_load_file('file.xml');
foreach ($xml->Cube->Cube->Cube as $cube)
if ($cube['currency'] == 'GBP')
break ;
echo $cube['rate']."\n";
[/PHP]