savoir si un SimpleXMLElement a des attributs ou pas

Le
Fred
Bonjour,

Pourtriez-vous me dire SVP comment faire pour tester si un objet de type
SimpleXMLElement a des attributs ou pas ?

J'ai essayé en vain :

if ($xml->attributes())
if (isset($xml->attributes()) ..

mais ça échoue

merci !

Fred
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #25221852
Bonjour,

Le 13/02/2013 16:36, Fred a écrit :

Pourtriez-vous me dire SVP comment faire pour tester si un objet de type
SimpleXMLElement a des attributs ou pas ?

J'ai essayé en vain :

if ($xml->attributes()) ...
if (isset($xml->attributes()) ..

mais ça échoue...



Je n'ai jamais utilisé cet objet, mais voici ce que je trouve dans un
commentaire utilisateur dans la doc :

http://www.php.net/manual/en/simplexmlelement.attributes.php#110574

Donc peut-être :
$atts_array = (array) $xml->attributes();
if (count($atts_array) == 0) ...
Fred
Le #25222362
Bonjour,

J'ai bien regardé ça mais le problème que le seul fait d'appeler
$xml->attributes();
lorsqu'il n'y a pas d'attributs, génère une erreur !



Le 14/02/2013 09:26, Olivier Miakinen a écrit :
Bonjour,

Le 13/02/2013 16:36, Fred a écrit :

Pourtriez-vous me dire SVP comment faire pour tester si un objet de type
SimpleXMLElement a des attributs ou pas ?

J'ai essayé en vain :

if ($xml->attributes()) ...
if (isset($xml->attributes()) ..

mais ça échoue...



Je n'ai jamais utilisé cet objet, mais voici ce que je trouve dans un
commentaire utilisateur dans la doc :

http://www.php.net/manual/en/simplexmlelement.attributes.php#110574

Donc peut-être :
$atts_array = (array) $xml->attributes();
if (count($atts_array) == 0) ...

Olivier Miakinen
Le #25222412
Le 14/02/2013 14:25, Fred a écrit en citant à l'envers(¹) :

J'ai bien regardé ça mais le problème que le seul fait d'appeler
$xml->attributes();
lorsqu'il n'y a pas d'attributs, génère une erreur !



Que ne le disais-tu dans ton premier article ! Et si tu nous
disais ce que raconte l'erreur pour qu'on ne perde pas plus de
temps ? ;-)

Voyons :
http://www.php.net/manual/en/simplexmlelement.attributes.php
http://www.php.net/manual/fr/simplexmlelement.attributes.php

Non seulement il n'est pas prévu que cette fonction retourne une
erreur si la balise n'a pas d'attributs, mais même il est prévu
qu'elle retourne NULL si l'objet est déjà lui-même un attribut
au lieu d'une balise !

Il faudrait voir quelle est l'erreur, mais je parierais que ton
$xml contient NULL suite à une erreur d'un appel précédent. À toi
de confirmer ou d'infirmer mon hypothèse.

P.-S. :
(¹) http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
(merci)

Cordialement,
--
Olivier Miakinen
Publicité
Poster une réponse
Anonyme