Bonjour,
J'ai un petit souci dans la modification d'un fichier XML.
voici le fichier XML en question :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Policy xmlns="http://www.emc.com/concerto/v1.0" name="grp_nagios_snag121e" id="e00d6342-f5e5-4452-b94c-3b3ca4201dba" statusCode="OUTOFSYNC" statusMessage="No of Ext Entities and No of DPRs doesnt match" href="https://srapi21e:8543/rest-api/policy/e00d6342-f5e5-4452-b94c-3b3ca4201dba" type="application/xml,application/json">
        <Folder href="https://srapi21e:8543/rest-api/folder/351f547a-8760-46dc-8586-8bf8e70ba54e" id="351f547a-8760-46dc-8586-8bf8e70ba54e" name="aixcerti"/>
        <Dataset href="https://srapi21e:8543/rest-api/dataset/43e6e918-a310-4421-89f4-686f03935f1b" id="43e6e918-a310-4421-89f4-686f03935f1b" name="Default Dataset"/>
        <Schedule href="https://srapi21e:8543/rest-api/schedule/9b10ca2b-4843-4a75-8299-daeec7e9d700" id="9b10ca2b-4843-4a75-8299-daeec7e9d700" name="Default Schedule"/>
        <Retention href="https://srapi21e:8543/rest-api/retention/d3fd6fb6-7705-416a-9a73-c1a04c345a24" id="d3fd6fb6-7705-416a-9a73-c1a04c345a24" name="ret_35j"/>
        <Client href="https://srapi21e:8543/rest-api/client/ef920436-3370-4620-baa4-8710d801285f" id="ef920436-3370-4620-baa4-8710d801285f" name="snag121e"/>
        <Enabled>false</Enabled>
        <EncryptionType>none</EncryptionType>
        <OverrideSchedule>notOverridden</OverrideSchedule>
</Policy>
Je n'arrive pas à modifier la valeur de la balise <Enabled> de 'false' en 'true'.

Voici le script perl que j'utilise :
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
#!/usr/bin/perl
use strict;
use warnings;
use XML::LibXML;
 
my $reviews_file = 'cr1.xml';
my $parser = XML::LibXML->new;
my $doc = $parser->parse_file($reviews_file) or die "Couldn't parse book reviewers\n";
 
for my $reviewer ($doc->findnodes('/Policy')) {
        my ($name) = $reviewer->findnodes('Enabled');
        $name->removeChildNodes();
        $name->appendText('true');
}
 
print $doc->toString;
A noter que si la balise <Policy> ne contient pas d'attribut, la modification fonctionne!
Merci d'avance à ceux qui pourrait m'aider.