If you want to search the whole document, you can use
/descendant::Volume[@VolumeCategory="L"]
which can be abbreviated to
//Volume[@VolumeCategory="L"]
Should I understand that that methods does not support attribute?
If you're asking if getElementsByTagName can filter the returned nodes to retain only those with a specific attribute value, then the answer is no. The only argument it takes is a tag name. You could do
my @matching =
grep {
my $vc = $_->getAttribute('VolumeCategory');
defined($vc) && $vc eq "L"
}
$doc->getElementsByTagName('Volume');
but aforementioned
my @matching = $doc->findnodes('//Volume[@VolumeCategory="L"]');
is much simpler.