Page 1 sur 1

xml et preg_match

Posté : 07 févr. 2006, 12:01
par demipoulp
bonjour tlm,

je n'ai pas envie d'installer un parser complet car je nai besoin de traiter qu un tout petit bout de cahaine et je pensé me tourner vers preg_match mais je n'arrive pas a trouver le bon maque de recherche pour trouver l entier qui se trouve entre les balises :

<eval date=\'27/01/2006 12:12:46\' critere=\'16\' validation=\'Assuré à 100 %\' info=\'acheteur certifié\'>100</eval>


:?: $masque = "#>(.*)</eval>#i";

mais j obtiens :

Code : Tout sélectionner

{ [0]=> string(320) ">En attente des informations bancaires100" [1]=> string(312) "En attente des informations bancaires100" }
sachant que mon xml a cette tete :

/*

Code : Tout sélectionner

<?xml version=\'1.0\' encoding=\'ISO-8859-1\' ?> <result version=\'3.0\' site=\'3058\' refid=\'30240\' retour=\'trouvee\' count=\'1\'> <transaction avancement=\'traitee\' cid=\'176204310\'> <detail>En attente des informations bancaires</detail> <analyse><eval date=\'27/01/2006 12:12:46\' critere=\'16\' validation=\'Assuré à 100 %\' info=\'acheteur certifié\'>100</eval></analyse> </transaction> </result>
*/

Posté : 08 févr. 2006, 12:43
par demipoulp
pas de champion de l expression reguliere dans les parages ? 8)

Re: xml et preg_match

Posté : 08 févr. 2006, 12:51
par Ripat
mais je n'arrive pas a trouver le bon maque
Bah, dans les quartiers chauds, ça doit se trouver non? :wink:
preg_match_all('#<eval[^>]+>(\d*)</eval>#', $txt, $out);

Re: xml et preg_match

Posté : 08 févr. 2006, 13:07
par zeus
mais je n'arrive pas a trouver le bon maque
Bah, dans les quartiers chauds, ça doit se trouver non? :wink:
#-o ](*,)

Re: xml et preg_match

Posté : 08 févr. 2006, 15:59
par Cyrano
mais je n'arrive pas a trouver le bon maque
Bah, dans les quartiers chauds, ça doit se trouver non? :wink:
Et moi qui prenais Ripat pour un type respectable, rangé, vocabulaire châtié et tout ça, BCBG quoi, quelle désillusion :langue:

Posté : 09 févr. 2006, 11:16
par demipoulp
:oops: :oops: :oops:

en tout cas le maSque marche nickel ! merci !

Posté : 09 févr. 2006, 11:41
par demipoulp
pârcontre il y a un truc etrange ( nfin pour moi ) , le resultat et un tableau multidimentionnel :?:

{ [0]=> array(1) { [0]=> string(114) "100" } [1]=> array(1) { [0]=> string(1) "100" } }

je ne comprend pas vraiment pourquoi ....

Posté : 09 févr. 2006, 14:25
par demipoulp
argh , je viens de m appercevoir que la classe abrégées \d capture les entier positif [0-9] , hors parfois je recupere des -1 et autres nombres negatif .... :? ,

any idea ?

Posté : 09 févr. 2006, 14:31
par demipoulp
#<eval[^>]+>((\d*)|(-[0-9]*))</eval>#
8)

Posté : 09 févr. 2006, 16:54
par Ripat
Ou tout simplement:

Code : Tout sélectionner

#<eval[^>]+>(-?\d*)</eval>#
le - est optionnel.

pârcontre il y a un truc etrange ( nfin pour moi ) , le resultat et un tableau multidimentionnel :?:
C'est normal pour preg_match_all.