PERL-XML Perser un fichier avec des atribut
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::Parser pour cela,dans mon fichier j'ai l'exemple suivant
Code:
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:
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