#!/usr/bin/perl --
use strict;
use warnings;
use XML::XPath;
Main( @ARGV );
exit( 0 );
sub Main {
use XML::XPath;
my $xc = XML::XPath->new(xml => SampleXML() );
print "ORIGINAL XML\n";
print $xc->findnodes_as_string('/'), "\n\n";
print "//blocks MATCHES MANY NODES \n";
$xc->setNodeText( '//blocks', ' blah blah ' );
print $xc->findnodes_as_string('/'), "\n\n";
print '//cidr-map-to[@name="AKA Edge"]/blocks MATCHES MANY NODES', "\n";
$xc->setNodeText( '//cidr-map-to[@name="AKA Edge"]/blocks', ' aha 42 ' );
print $xc->findnodes_as_string('/'), "\n\n";
print '//cidr-map[2]/cidr-map-to/blocks MATCHES ONE NODE', "\n";
$xc->setNodeText( '/Product/cidr-map[2]/cidr-map-to/blocks', ' eureka ' );
$xc->setNodeText( '//cidr-map[2]/cidr-map-to/blocks', ' eureka ' );
$xc->setNodeText( '//cidr-map[@name="Prod Internal Actual"]/cidr-map-to/blocks', ' eureka ' );
print $xc->findnodes_as_string('/'), "\n\n";
}
sub SampleXML {
return <<'__XML__';
127.0.241.174 127.0.0.181
127.0.12.1 10.0.0.1 198.168.1.1
__XML__
}
__END__
ORIGINAL XML
127.0.241.174 127.0.0.181
127.0.12.1 10.0.0.1 198.168.1.1
//blocks MATCHES MANY NODES
blah blah
blah blah
//cidr-map-to[@name="AKA Edge"]/blocks MATCHES MANY NODES
aha 42
aha 42
//cidr-map[2]/cidr-map-to/blocks MATCHES ONE NODE
aha 42
eureka