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
| #!/usr/bin/perl
use strict;
use warnings;
use XML::LibXML;
# Sous-routine permettant d'entrée le fichier en CLI
sub obtient_ligne{
#demande , lit , "chompe" et renvoie une ligne d'entrée
print $_[0];
chomp(my $ligne = <STDIN>);
$ligne ;
}
my $fichierXML = &obtient_ligne ("Quel est votre fichier XML ?");
open IN ,$fichierXML
or die "Impossible d'ouvrir '$fichierXML ' en entrée : $!";
my $fichierFW = &obtient_ligne ("Quel est votre fichier FW ?");
open OUT, "+>$fichierFW"
or die "Impossible d'ouvrir '$fichierFW ' en sortie : ";
my $parser = XML::LibXML->new();
# Creation du fichier resultat
my $FichierResulat = 'resultat.txt';
open( my $FhResultat, '>', $FichierResulat )
or die("Impossible d'ouvrir le fichier $FichierResulat\n$!");
#Activation validation DTD du fichier XML avant le parsing
$parser ->validation(1);
my $tree = $parser -> parse_file($fichierXML);
#Racine du document XML
my $root = $tree->getDocumentElement;
#Balise ObjectGroup
my object_group = root -> getElementsByTagName ('ObjectGroup');
foreach my $child_Object_group (@ObjectGroup){
print {FhResulat } "ObjectGroup:";
$childid->getElementsByTagName('ObjectGroup')->[0]->getFirstChild->getData,"",
$childid->getAttribute('id'),
$childid->getAttribute('name'), "\n";
}
close($FhResultat); |