sub analyze_delta { my ($self, %args) = @_; use XML::DOM; use XML::DOM::XPath; $self->{'majorDOMus'} = XML::DOM::Parser->new() unless $self->{'majorDOMus'}; my $id = $args{'id'}; my ($tree1, $tree2) = map { $self->{'majorDOMus'}->parse($_); } ${ $self->{'failures'}->{$id}->{'doc1'} }, ${ $self->{'failures'}->{$id}->{'doc2'} }; for my $delta ( @{ $self->{'failures'}->{$id}->{'deltas'} } ) { my $path = $delta->{'context'}; my @nodes; ( @nodes = $tree1->findnodes($path) ) ? 1 : ( @nodes = $tree2->findnodes($path) ) ? 1 : print "\nThere is no node at '$path'\n"; print "\n", $_->getData for @nodes; print "\n", $_->toString, "\n" for @nodes; } }