use 5.010; use XML::LibXML; my $xml = XML::LibXML->load_xml(IO => \*DATA); foreach my $workflow ($xml->findnodes('//workflow')) { say $workflow->{name}; my ($testcases) = $workflow->findnodes('./testcases'); for (qw/ total passed failed skipped blocked /) { say "\t$_: $testcases->{$_}"; } } __DATA__ C:\Users\hivinod\TShell\Results\Submission\0905-194337\8ff67565\975e822e\1 \\BDCLAB-WM7-10\C$\Users\hivinod\TShell\Results\Submission\0905-194337\8ff67565\975e822e\1 TestLauncher -b te.exe -w "C:\data\test\result" -la -a \Data\Test\bin\gaudit_mc.dll /select:"not((@Name='*KSPROPERTY_PIN_NAME*')or(@Name='*INVALIDVALUE_AUDIO_MUX_SOURCE')or(@Name='*2_CONNECTION_DATAFORMAT')or(@Name='*3_CONNECTION_DATAFORMAT')or(@Name='*CHANNELULONG*VOLUMELEVEL'))" /enablewttlogging /outputFolder:\Data\Test\Result /logfile:results.wtl \Data C:\Users\hivinod\TShell\Results\Submission\0905-194337\8ff67565\9a1f022d\1 \\BDCLAB-WM7-10\C$\Users\hivinod\TShell\Results\Submission\0905-194337\8ff67565\9a1f022d\1