Extraire information d'un XML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Extraire information d'un XML

Re: Extraire information d'un XML

par benws2305 » 17 juin 2022, 17:49

Merci pour la réponse, en cherchant un peu en effet j'ai réussi à trouver comment utiliser xpath, voilà ce que cela donne :
https://meteo-gournaysuraronde.fr/texte_vigilance.php

Code : Tout sélectionner

$fichier = 'https://vigilance2019.meteofrance.com/data/WXQQ60_LFPW_.xml'; $xml = simplexml_load_file($fichier); foreach ($xml->xpath('Descriptif[2]/Titre/Paragraphe[3]') as $texte_actuel) { echo $texte_actuel->Intitule .'<br/>'; echo $texte_actuel->Texte[0] . '<br/>'; if (!empty($texte_actuel->Texte[1])) { echo $texte_actuel->Texte[1] . '<br/>'; } if (!empty($texte_actuel->Texte[2])) { echo $texte_actuel->Texte[2] . '<br/>'; } if (!empty($texte_actuel->Texte[3])) { echo $texte_actuel->Texte[3] . '<br/>'; } if (!empty($texte_actuel->Texte[4])) { echo $texte_actuel->Texte[4] . '<br/>'; } if (!empty($texte_actuel->Texte[5])) { echo $texte_actuel->Texte[5] . '<br/>'; } if (!empty($texte_actuel->Texte[6])) { echo $texte_actuel->Texte[6] . '<br/>'; } echo '<br/>'; } foreach ($xml->xpath('Descriptif[2]/Titre/Paragraphe[4]') as $texte_previ) { echo $texte_previ->Intitule .'<br/>'; echo $texte_previ->Texte[0] . '<br/>'; if (!empty($texte_previ->Texte[1])) { echo $texte_previ->Texte[1] . '<br/>'; } if (!empty($texte_previ->Texte[2])) { echo $texte_previ->Texte[2] . '<br/>'; } if (!empty($texte_previ->Texte[3])) { echo $texte_previ->Texte[3] . '<br/>'; } if (!empty($texte_previ->Texte[4])) { echo $texte_previ->Texte[4] . '<br/>'; } if (!empty($texte_previ->Texte[5])) { echo $texte_previ->Texte[5] . '<br/>'; } if (!empty($texte_previ->Texte[6])) { echo $texte_previ->Texte[6] . '<br/>'; } echo '<br/>'; }

Re: Extraire information d'un XML

par Spols » 17 juin 2022, 09:27

Salut,

l'idée va être de trouver la balise titre avec l'attribut name = Description puis parcourir les paragraphes pour trouver celui qui qui a le texte Evolution prévue: dans la balise intitule et récupèrer les contenus des balises texte

C'est la méthode xpath qui te sera utile dans un premier temps
Tu peux aussi parcourir ton objet pour trouver ce qu'il te faut.
La doc sur php.net est bien faite et t'aidera

Extraire information d'un XML

par benws2305 » 16 juin 2022, 18:53

Bonjour,
J'aimerais pouvoir extraire du fichier XML publié par météo france pour région à chaque vigilance orange, le texte contenu dans "Evolution prévue :"
Cependant, j'ai suivi quelques tutos simples pour extraire directement depuis les balise mais j'avoue que je suis perdu pour la suite du code malgré le print pour récupérer cette donnée.

Voilà ce que cela donne => https://meteo-gournaysuraronde.fr/texte_vigilance.php

J'aimerai (à l'heure où j'écris ces lignes car si une nouvelle vigilance est publiée d'ici là forcément cela va changer) récupérer ceci, dans la partie Evolution prévue
[0] => La dégradation orageuse a atteint le Nord et le Pas-de-Calais en première partie de nuit. Ces orages ont donné de forts cumuls de pluie, quelques rafales de vent autour de 50 à 70 km/h ainsi que de la grêle.
[1] => Actuellement ils ont complètement évacué la Picardie et finissent d'évacuer le Nord-Pas-de-Calais par le nord.

Code : Tout sélectionner

<?php $fichier = 'https://vigilance2019.meteofrance.com/data/WXQQ60_LFPW_.xml'; $contenu = simplexml_load_file($fichier); ?> <?php echo '<pre>'; print_r($contenu); echo '</pre>'; ?>
Comment puis-je procéder simplement ?
Il me faut d'autres choses aussi mais je pense que si on me montre la structure pour récupérer déjà ce morceau je pourrai me débrouiller pour extraire d'autres infos.

Merci d'avance !