use Win32::OLE qw(in with); my $xml_file = './test.xml'; my $dom = Win32::OLE->new('MSXML2.DOMDocument') or die "new() failed"; $dom->{async} = "False"; $dom->{validateOnParse} = "False"; $dom->Load($xml_file) or die "Parse failed"; my $Header = $dom->DocumentElement(); my $Mains = $Header->childNodes(); foreach my $main(in $Mains) { my $main_id = $main->Attributes->getNamedItem("id")->Text; my $main_name = $main->Attributes->getNamedItem("name")->Text; print "$main_id,$main_name\n"; }