Récupérer un attribut XML

Petit nouveau ! | 6 Messages

29 avr. 2019, 11:56

Bonjour,
Depuis quelques jours je n'arrive pas à récupérer un attribut XML. Le fichier XML est sur le navigateur web. Voici mon code pour récupérer le fichier XML et le stocker dans une variable.
function prepare_requete($serie)

	{

		$url ="https://api.dell.com/support/..../v4/...../id?apikey=....";

		str_replace("id",$serie,$url);

		$options=array(

			CURLOPT_URL => $url,

			CURLOPT_RETURNTRANSFER => true,

			CURLOPT_HEADER => false

			);

		$CURL=curl_init();
			$CURL=curl_init();

			curl_setopt_array($CURL, $options);
			$content=curl_exec($CURL);

		curl_close($CURL);
		

	}

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 avr. 2019, 14:00

Bonjour,

Quel est le problème ?
Il faut que tu avances dans ton débuguage pour savoir à quel niveau le code que tu donnes ne fonctionne pas comme attendu ?
Le fichier XML est sur le navigateur web.
Ça ne veut rien dire techniquement.
Si j'en crois ton code le fichier XML est accessible depuis une url sur le site de Dell.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

29 avr. 2019, 15:01

Merci de ta réponse,
Mon code permet en fait d'envoyer des requêtes https avec l'API de Dell. Donc le site de Dell renvoie une page web en XML. Dans cette page web je veux récupérer un attribut qui est la date de garantie de l'ordinateur. Le problème est que je ne sais pas comment faire cela malgré mes recherches sur internet.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 avr. 2019, 15:57

Regarde du côté des fonctions SimpleXML qui permettent de traiter très facilement les XML en PHP :
https://www.php.net/manual/fr/simplexml ... -basic.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

29 avr. 2019, 16:05

Merci,
Dans mon code la page XML que renvoie le site Dell est stocké dans la variable $content. Dois-je convertir cette variable ou bien puis-je l'utiliser directement pour traiter du XML.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 avr. 2019, 16:56

Tu peux utiliser la fonction simplexml_load_file($url) pour charger directement un XML depuis une url et l'utiliser ensuite avec SimpleXML
http://php.net/simplexml_load_file
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

30 avr. 2019, 14:48

Mon programme envoie des requêtes https avec une API. Cette API renvoie à chaque appel un résultat XML. J'essaye de stocker tous les résultats dans un tableau. Mais je ne sais pas comment manipuler ces résultats pour pouvoir extraire l'information que je veux. J'ai essayé de regarder sur internet mais il y a trop d'éléments différents je suis perdu.
J'ai essayé de gérer les différents résultats obtenus avec "simplexml_load_file" mais ça me retourne cette erreur : "simplexml_load_file(): I/O warning : failed to load external entity "" in C".
Merci de vos futures réponses.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 avr. 2019, 17:05

J'ai essayé de gérer les différents résultats obtenus avec "simplexml_load_file" mais ça me retourne cette erreur : "simplexml_load_file(): I/O warning : failed to load external entity "" in C".
Et quelle est la ligne de code associée à cette erreur ?
A priori je dirai que l'url que tu as indiquée en paramètre est incorrecte
Quand tout le reste a échoué, lisez le mode d'emploi...