Expression reguliere...

cs_picardien Messages postés 1 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 31 mars 2008 - 31 mars 2008 à 16:28
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 5 avril 2008 à 23:51
Salut,
je veux recuperer un des champs de fichier xml inclu dans des balises


mon bout de code :
string
StrRx;
StrRx =

"(<"
+ mark +

">)(?<Field>.*)(</"
+ mark +

">)"
;


Regex
Rx =

new



Regex
(StrRx);


MatchCollection
m = Rx.Matches(XmlFile);





Group
g = m.Groups[

"Field"
];

Mon fichier xml:
...> <name>toto</name> <name>toto2</name> <...

Je recupére : "toto</name> <name>toto2"

je voudrais recuperer une collection de match avec toto et toto2

Merci pour vos reponses.

1 réponse

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 avril 2008 à 23:51
Salut,

A priori en regardant vite fait je dirais
   StrRx = "(<" + mark + ">)(?<Field>.*?)(</" + mark + ">)";
Voir plutot 
   StrRx = String.Format(@"(?:\<{0}\>)(?<Field>.*?)(?:\</{0}\>)", mark);
vu que apparemment tu ne vas pas te servir des 2 groupes numérotés.

Sinon quel est l'intérêt de (tenter de) réécrire le parseur XML ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous