﻿#!/usr/bin/perl
<<DOC;
Format d\'entree : un texte etiquete et lemmatise par tree tagger
Format de Sortie : le meme texte au format xml
DOC

#use Encode;
# Usage
$ChaineUsage="Usage : tt2xml.pl <Fichier>\n";
if (@ARGV!=1) {
 die $ChaineUsage;
}

&ouvre;
&entete;
&traitement;
&fin;
&ferme;

##############################################################################################
# Recuperation des arguments et ouverture des tampons
sub ouvre {
    $FichierEntree=$ARGV[0];
    open(Entree,$FichierEntree);
    $FichierSortie=$FichierEntree . ".xml";
    open(Sortie,">$FichierSortie");
}

# Entete de document XML
sub entete {
    print Sortie "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"no\"?>\n";
    print Sortie "<document>\n";
    print Sortie "<article>\n";
}

# Traitement
sub traitement {
    while ($Ligne = <Entree>) {
		if ($Ligne!~/\o\?\:\\o\?\:\\/) {
			$Ligne=~s/&/$amp;/g;
			# Remplacement des guillemets par <![CDATA["]]> (evite erreur d'interpretation XML)
			$Ligne=~s/\"/<![CDATA[\"]]>/g;
			$Ligne=~s/([^\t]*)\t([^\t]*)\t(.*)/<element><data type=\"type\">$2<\/data><data type=\"lemma\">$3<\/data><data type=\"string\">$1<\/data><\/element>/;
			$Ligne=~s/<unknown>/unknown/g;
			print Sortie $Ligne;
		}
    }
}
# Fin de fichier
sub fin {
    print Sortie "</article>\n";
    print Sortie "</document>\n";
}

# Fermeture des tampons
sub ferme {
    close(Entree);
    close(Sortie);
}
