Question très difficile: récup d'une portion de chaîne et substitution

Question très difficile: récup d'une portion de chaîne et substitution - Perl - Programmation

Marsh Posté le 02-10-2007 à 15:54:10    

Bonjour,
 
Je suis un peu rouillé en Perl. J'essaye de faire un programme propre. Je suis sur un environnement où je n'ai pas beaucoup de possibilités.
Voila la chose : j'ai un modèle XML, sur lequel je dois me baser. Prenons un exemple tout bête :
<XML>
 <CHAMP1>%TOTO%
  <CHAMP2>@TATA@</CHAMP2>
  </CHAMP1>
 
Le but de l'opération, est de remplacer tout champ entouré de % par une variable Perl (exemple le contenu de la variable $MaVariable), et de remplacer tout champ entouré de @ par le retour d'une fonction qui prendre en paramètre le nom du champ trouvé.
 
Comment puis-je récupérer %TOTO% avec substr ou une expression rationnelle, simplement et efficacement ? (je ne suis pas d'habitude le codeur, donc je dois faire quelque chose de facilement maintenable)
Comment puis-je substituer %TOTO% par le contenu de la variable $MaVariable ? En PHP, de mémoire, il existait une fonction permettant de faire cela. Et en Perl ?
Pour le reste, si je trouve pour %TOTO% je vais trouver pour @TATA@
 
En vous remerciant

Reply

Marsh Posté le 02-10-2007 à 15:54:10   

Reply

Marsh Posté le 02-10-2007 à 16:03:21    

Code :
  1. $tonFlux =~ s/%TOTO%/$maVariable/gi;
  2. $tonFlux =~ s/@(TATA)@/taSub($1)/egi;


ne pas oublier le return dans la sub taSub.
 
Maintenant si tu dois vraiment manipuler du flux xml je te conseillerais d'utiliser un module perl "kivabien", tu en trouveras aisément sur la CPAN.  
Les plus répandus(pour de petites choses) sont SimpleXML et SmartXML, ma préférence allant au second.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed