XPathによる値の取得


 XML::LibXMLモジュールを使うとXPathでノードを指定して値を取得できます。
use strict;
use warnings;
use XML::LibXML;

my $file = 'data.xml';
my $xpath = '/configuration/appSettings/add';

binmode STDOUT, ":encoding(cp932)"; # Windows向け

my $doc = XML::LibXML->load_xml(location => $file);

my @nodes = $doc->findnodes($xpath);
foreach my $node (@nodes) {
    my $key = $node->getAttribute('key');
    my $value = $node->getAttribute('value');
    printf "%s=%s\n", $key, $value;
}

__END__
上記のスクリプトはこんなXMLを対象としています。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="key1" value="値1" />
    <add key="key2" value="値2" />
    <add key="key3" value="値3" />
  </appSettings>
</configuration>

関連項目

XPathによる名前空間付きの値の取得