in reply to Question about XML::Simple
useXML::Twig;
# we want anxpath like: //[@name="a"]//...//[@name="b"]/warn
# we want anxpath like: //[@name="a"]//...//[@name="b"]/warn
my @names = qw(snoopdogg cpu cpu load1); my $twig = XML::Twig->new; $twig->parse(<<'XML'); <conf name="snoopdogg" serial="1" target="172.16.1.3"> <services> <service name="cpu"> <plugins> <plugin name="cpu" target="172.16.1.3" schedule="60"> <probes> <probe name="load1"> <warn value="4" operator=">"/> <crit value="10" operator=">"/> </probe> </probes> </plugin></plugins></service></services> </conf> XML my ($elt) = $twig->get_xpath( (join "//" => "", map qq{[\@name="$_"]}, @names) . "/warn" ); printf "value: %d\n", $elt->att('value'); __END__ value: 4
|
---|
In Section
Seekers of Perl Wisdom