Bonjour a tous,

j'ai beau chercher une solution pou r mon problème mais sans sucée.

je vous explique mon problème:
j'ai un fichier XML que je doit parser avec perl et j’utilise XML:arser pour cela,dans mon fichier j'ai l'exemple suivant

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<LieuNaissance>
<div style="margin-left:40px"><Pays code="79000">FRANCE</Pays></div></LieuNaissance>
<LieuNaissance>
<div style="margin-left:40px"><Localite code="75000">Paris</Localite></div></LieuNaissance>
<LieuNaissance>
<div style="margin-left:40px"><Localite code="94300">Vincennes</Localite> 
<Pays>FRANCE</Pays></div></LieuNaissance>
<LieuNaissance>
<div style="margin-left:40px"><Pays code="94300">France</Pays> 
<Localite>Vincennes</Localite></div></LieuNaissance>

dans l'exemple précédent c'est les quatre 4 de figure que je peut rencontré dans mon fichier XML et que je dois traité, et j'ai conçu le code suivant pour traité tout les cas de figure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
if ({LieuNaissance}->{Localite}->{'code'}){
	$Cod_Nai =	{LieuNaissance}->{Localite}->{'code'};
	if ({LieuNaissance}->{Localite}->{'content'}){$Vil_Nai =	{LieuNaissance}->{Localite}->{'content'};}
	if ({LieuNaissance}->{Pays}){$Pays_Nai= {LieuNaissance}->{Pays};}			
}
elsif ({LieuNaissance}->{Pays}->{'code'}){
	$Cod_Nai =	{LieuNaissance}->{Pays}->{'code'};
	if ({LieuNaissance}->{Pays}->{'content'}){$Pays_Nai= {LieuNaissance}->{Pays}->{'content'};}
	if ({LieuNaissance}->{Localite}){ $Vil_Nai = {LieuNaissance}->{Localite};}
}
mai c'est pas bon parce pour le 1er exemple il teste la balise localite dans elsif et comme elle n'existe pas il affect à $vil_nai la valeur HASH(0x1fdcc14)

comment testé l'existance de balise et si elle n'existe pas alors il change pas de valeur a la variable, puisqu'elle est deja initialisé au début
pourriez vous m'aidé svp, et merci d'avance