Пример кода для демонстрации
use strict;
use warnings;
use feature 'say';
use XML::LibXML;
my $file = 'test.xml';
my $dom = XML::LibXML->load_xml(location => $file);
foreach my $node ($dom->findnodes('//idset')) {
say 'NodeID: ', $node->{id};
say 'ItemA: ', $node->findvalue('./a');
say 'ItemB: ', $node->findvalue('./b');
say '';
}
Содержимое входного файла text.xml
<header>
<idset id="100">
<a>item_a</a>
<b>item_b</b>
</idset>
<idset id="101">
<a>item_c</a>
<b>item_d</b>
</idset>
</header>
Вывод
NodeID: 100
ItemA: item_a
ItemB: item_b
NodeID: 101
ItemA: item_c
ItemB: item_d