use locale; use strict; use XML::Writer; if ( $#ARGV != 0 ) { die "Usage : ", $0, " fichier_étiqueté\n"; } my $scripteur = new XML::Writer ( DATA_MODE=>1, DATA_INDENT=>1 ); $scripteur->xmlDecl( "iso-8859-1" ); $scripteur->startTag( "texte", "source"=>$ARGV[0] ); open (IN, "<", $ARGV[0]) or die "Problème ", $ARGV[0], " : ",$!,"\n"; my $num = 0; while ( my $ligne = ){ chomp $ligne; $num++; if ( not $scripteur->in_element( "phrase" ) ){ $scripteur->startTag( "phrase" ); } if ( $ligne =~ /(.*)\t(.*)\t(.*)/ ){ $scripteur->startTag( "mot", "num"=>$num ); $scripteur->dataElement( "forme",$1 ); $scripteur->dataElement( "lemme",$3 ); $scripteur->dataElement( "categorie",$2 ); $scripteur->endTag( "mot" ); if ( $2 eq "SENT" ){ $scripteur->endTag( "phrase" ); } } } close (IN); if ( $scripteur->in_element( "phrase" ) ){ $scripteur->endTag( "phrase" ); } $scripteur->endTag( "texte" ); $scripteur->end( );