Discussion:
savoir si un SimpleXMLElement a des attributs ou pas
(trop ancien pour répondre)
Fred
2013-02-13 15:36:47 UTC
Permalink
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
Olivier Miakinen
2013-02-14 08:26:32 UTC
Permalink
Bonjour,
Post by Fred
Pourtriez-vous me dire SVP comment faire pour tester si un objet de type
SimpleXMLElement a des attributs ou pas ?
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
2013-02-14 13:25:24 UTC
Permalink
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 !
Post by Fred
Bonjour,
Post by Fred
Pourtriez-vous me dire SVP comment faire pour tester si un objet de type
SimpleXMLElement a des attributs ou pas ?
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
http://www.php.net/manual/en/simplexmlelement.attributes.php#110574
$atts_array = (array) $xml->attributes();
if (count($atts_array) == 0) ...
Olivier Miakinen
2013-02-14 13:43:00 UTC
Permalink
Post by Fred
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
Loading...