Ниже приведено решение с использованием XML :: Twig.Любой модуль DOM, такой как XML :: LibXML, также будет работать очень похожим образом.
#!/usr/bin/perl
use strict;
use warnings;
use XML::Twig;
my $t= XML::Twig->new->parse( \*DATA);
foreach my $reference ($t->findnodes( '/Project/ItemGroup/Reference'))
{ print "HintPath count: ", $reference->children_count( 'HintPath'), "\n";
my $private= $reference->descendants( 'Private[text()="False"]');
print "False Private count: $private\n";
}
__DATA__
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<ItemGroup>
<Reference Include="IronPython, Version= ...">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\shared\IronPython-1.1\IronPython.dll</HintPath>
</Reference>
<Reference Include="log4net, Version= ...">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\binaries\log4net.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
</Project>