Problème pour lire l'attribut xml:lang d'un élement [XML] - PHP - Programmation
Marsh Posté le 06-09-2006 à 16:38:46
Sûrement parce que l'attribut est namespacé, non ? La méthode attributes() prend le namespace comme argument, essaye avec celui de l'XML (http://www.w3.org/XML/1998/namespace)
Marsh Posté le 06-09-2006 à 16:47:40
J'avais pensé la même chose que FlorentG, mais après avoir fait le test sur un bête doc xml, je récupère bien la valeur malgré le changement de namespace. Montre nous ton code plutôt
Marsh Posté le 07-09-2006 à 11:29:08
Bonjour à tous les 2,
Désolé de ne pas avoir répondu plus tôt, mais la notif par mail n'a pas fonctionné on dirais.
Alors voici tout d'abord un exemple de xml (le début du fichier)
Citation : <?xml version="1.0" encoding="utf-8" ?> |
On va donc dire que je veux savoir quelle est la valeur du xml:lang de la balise "Classification", j'ai donc ce code :
Citation : // Chargement du fichier XML à l'aide de simpleXML |
et voici ma sortie :
Citation : SimpleXMLElement Object ( [@attributes] => Array ( [code] => 02.01.11 ) ) |
donc j'ai bien l'attribut "code" qui apparait mais pas le "xml:lang" et je ne sais pas comment l'atteindre...
merci bcp.
Marsh Posté le 07-09-2006 à 11:42:53
Comme dit, en mettant le namespace de l'xml comme premier paramètre de attributes()
Marsh Posté le 07-09-2006 à 11:52:06
je ne connais pas du tout le concept des namespace, mais effectivement ca fonctionne avec un
Citation : $val->attributes("http://www.w3.org/XML/1998/namespace" ); |
j'ai bien
Citation : SimpleXMLElement Object ( [@attributes] => Array ( [lang] => fr ) ) |
merci beaucoup, ca fait 2 semaines que je cherchais une solution !
Marsh Posté le 07-09-2006 à 12:02:14
C'est encore moi, j'ai oublié de vous demander si il existait un moyen d'accéder à cet attribut sans passer par la méthode attributes() c'est à dire en y accedant par les crochets [] sur le SimpleXMLElement directement, comme on le fait pour les attributs non-namespacés.
Marsh Posté le 06-09-2006 à 16:26:56
Bonjour tout le monde,
J'utilise actuellement simpleXml pour parser des fichiers XML, mais je suis confronté à un problème :
sur un élement donné du style <element attribut1="salut" xml:lang="fr"></element>
Je n'arrive pas à récuperer la valeur fr qui se trouve dans xml:lang... et lorsque je liste les attributs de l'element en faisant un attributes(), il n'y a que "attribut1" qui s'affiche....
merci d'avance !