package text2xml;
use utf8;

sub TTtext2xml {

    &ouvre;
    &entete;
    &traitement;
    &fin;
    &ferme;

				#####################################
    sub ouvre {
        $FichierEntree=shift(@_);	
        open(Entree,$FichierEntree);
        $FichierSortie=$FichierEntree . ".xml";
        open(Sortie,":>encoding(utf8)","$FichierSortie");
    }

    sub entete {
        print Sortie "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n";
        print Sortie "<document>\n";
    }

    sub traitement {
        while ($Ligne = <Entree>) {
        	if ($Ligne!~/\ô\¯\:\\ô\¯\:\\/) {
	            $Ligne=~s/\"/<![CDATA[\"]]>/g;
        	    $Ligne=~s/([^\t]*)\t([^\t]*)\t(.*)/<element>\n <data type=\"type\">$2<\/data>\n <data type=\"lemma\">$3<\/data>\n <data type=\"string\">$1<\/data>\n<\/element>/;
	             print Sortie $Ligne;
        	}
        }
    }
    sub fin {
        print Sortie "</document>\n";
    }

    sub ferme {
        close(Entree);
        close(Sortie);
    }
return ($FichierSortie);
}
1;


sub Cordialtext2xml {

	&ouvre;
	&entete;
	&traitement;
	&fin;
	&ferme;
				################################################
	sub ouvre {
	    $FichierEntree=shift(@_);
	    open(Entree,$FichierEntree);
	    $FichierSortie=$FichierEntree . ".xml";
	    open(Sortie,">:encoding(utf8)","$FichierSortie");
	}
	sub entete {
	    print Sortie "<?xml version=\"1.0\" encoding=\"utf8\" standalone=\"no\"?>\n";
	    print Sortie "<PARCOURS>"."\n"."<NOM>Claire Guiraud</NOM><document>"."\n";
	       
	}
	sub traitement {
	    while ($Ligne = <Entree>) {
		if ($Ligne!~/\ô\¯\:\\ô\¯\:\\/) {
		# Remplacement des guillemets par <![CDATA["]]> (évite erreur d'interprétation XML)
		    $Ligne=~s/\"/<![CDATA[\"]]>/g;
		    $Ligne=~s/([^\t]*)\t([^\t]*)\t(.*)/<element>\n <data type=\"lemme\">$2<\/data>\n <data type=\"categorie\">$3<\/data>\n <data type=\"forme\">$1<\/data>\n<\/element>/;
		    print Sortie $Ligne;
		}
	    }
	}
	sub fin {
	    print Sortie "</document>"."\n"."</PARCOURS>"."\n";
	}
	sub ferme {
	    close(Entree);
	    close(Sortie);
	}
return($FichierSortie);
}
1;
