#!/usr/bin/perl -- use strict; use warnings; use autodie; use XML::Twig; Main( @ARGV ); exit( 0 ); sub Main { parseJmeter( \*DATA, \*STDOUT ); # DEMO } sub parseJmeter { my( $inFilenameOrHandle, $outHandle ) = @_; my( $error, $value, $failure, $failureMessage ) = ("") x 4; # INIT TO EMPTY my $t = XML::Twig->new( twig_handlers => { 'failure' => sub { warn $_->path; $failure = $_->text; }, 'failureMessage' => sub { warn $_->path; $failureMessage = $_->text; }, 'error' => sub { warn $_->path; $error = $_->text; }, '/*/*//httpSample' => sub { warn $_->path; ## children $value .= $_->att('lb') . "\n"; }, '/*/httpSample' => sub { # TRIGGERED LAST, the daddy httpSample warn 'YO ', $_->path; $value .= $_->att('lb') . "\n"; ## append print $outHandle qq{
$value
$failure
$failureMessage