IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

XML::Parser et UTF-8


Sujet :

Modules Perl

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut XML::Parser et UTF-8
    Bonjour je viens de créer un script perl qui permet de parser un document xml en utf-8. je récupère les contenus de certaines balises tout simplement.

    le soucis est que je réécris un document xml dèrrière et il me renvoi des caractère bizarre du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Location>C�te</Location>
    je me demande ce que je dois faire pour avoir la bonne transcription.

    voici mon code perl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    ###parse le fichier xml selon l'ÈlÈment a analyser (ici les signature)
     
    use locale;
    use strict;
    use XML::Parser;
     
     
    if ( $#ARGV!=0 ){
        die "Usage : ", $0, "fichier_xml\n";
    }
     
    my $parseur = new XML::Parser;
    $parseur -> setHandlers (
        Start => \&balise_ouvrante,
        End => \&balise_fermante,
        Char => \&segment_texte
        );
     
    my ( $segment, $segment_en_cours);
    $parseur->parsefile( $ARGV[0] ,'<:utf8');
     
     
     
    sub balise_ouvrante {
        my $p = shift @_;
     
        my $balise = shift @_;
        my %attributs;
        while ( $#_ >= 0 ){
    	my $cle = shift @_;
    	my $valeur = shift @_;
    	$attributs{$cle} = $valeur;
     
        }
     
     
     
        if ( $balise eq "Organization" | $balise eq "Location" | $balise eq "Person" | $balise eq "JobTitle"){
     
    	$segment = "";
    	$segment_en_cours = 1;
        }    
     
    }
     
    sub segment_texte {
        my $p = shift @_;
        my $texte = shift @_;
        if ( $segment_en_cours ) {
    	$segment = $segment . $texte;
     
        }
    }
    my $i;
     
    sub balise_fermante {
     
        my $p = shift @_;
        my $balise = shift @_;
     
        if ( $balise eq "Organization" | $balise eq "Location" | $balise eq "Person" | $balise eq "JobTitle"){
    	$segment =~ s/\n//g;
    	$segment =~ s/\s\s+/ /g;
    	print "<".$balise.">".$segment."</".$balise.">"."\n";
    	$segment_en_cours = 0;
    	$i++;
        }
     
     
    }
     
    ##print "---Nombre de signature--- :".$i."\n";

    merci de votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    j'ai ajouté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $filename =  'out1.xml';
    open OUT, '>:utf8', $filename 
      or die "Couldn't open $filename   : $!\n";
    en fait il delivrait une sortie ANSI par défault.

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JAXP] com.sun.xml.parser.ValidatingParser
    Par yolepro dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 05/11/2008, 15h36
  2. [XML] Parser une DTD?
    Par La Truffe dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 03/04/2007, 11h28
  3. [XML::PARSER] Problème d'encodage
    Par frangin2003 dans le forum Modules
    Réponses: 13
    Dernier message: 05/09/2005, 14h59
  4. [XML] Parser XML
    Par RobinJulie dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/02/2005, 08h48
  5. [XML] Parser selon des noeuds enfants
    Par GLDavid dans le forum Modules
    Réponses: 5
    Dernier message: 20/08/2004, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo