[RESOLU] Parsage xml

Petit nouveau ! | 6 Messages

29 avr. 2016, 14:41

Bonjour,
je vous soumets mon problème.
j'ai une balise xml dans un fichier de ce type:

Code : Tout sélectionner

<attr name="ENTdiciplines"><value>1787$SPORT NAUTIQUE</value><value>1814$BADMINGTON</value></attr>
C'est toujours 4 chiffres $ et le nom de la discipline.
quand je lis la valeur de mon noeud

Code : Tout sélectionner

$attr->nodeValue
ça me renvois la chaine complète : "1787$SPORT NAUTIQUE1814$BADMINGTON"

Comment puis-je récupérer mes deux disciplines SPORT Nautique et Badmington, sachant que les chiffres sont aléatoires?
Je n'ai pas réussi à mettre une expression régulière dans un explode.

Sinon, est-il possible de lire directement la valeur du nœud en ressortant les deux <Value> ?

D'avance merci pour votre aide

Mammouth du PHP | 2703 Messages

29 avr. 2016, 14:48


Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

29 avr. 2016, 16:06

Bonjour,

Comme le sous-entend or1, tu peux effectivement utiliser preg_match_all() et une expression régulière :)
(il est pas très bavard ;))
Tu peux utiliser le masque de son exemple ou celui-ci /[^0-9$]*/ s'il répond à ton besoin
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 6 Messages

01 mai 2016, 21:46

Bonsoir,
merci pour vos réponses. :)
Finalement, j'ai opté pour

Code : Tout sélectionner

array_filter(preg_split("/[0-9]{4}\\$/",$attr->nodeValue))
ça me permet de gérer les cas où il y a 1,2 3 ou plus de valeurs. :D
Merci
Fred