http://www.perlmonks.org?node_id=999894


in reply to finding ancestor elements related to specific change

Do you mean something like this?

#!/usr/bin/perl -slw use strict; use Data::Dump qw(dump pp); use XML::Rules; my $parser = XML::Rules->new( rules => { parameters => sub { return '+has_uint64' => ($_[1]->{type} eq 'uint64_t'); }, members => sub { my ($tag,$attr,$context,$parents) = @_; return unless $context->[-2] eq 'classes'; my $class = $parents->[-2]{name}; (my $access = $context->[-1]) =~ s/_methods//; print "$access $class.$attr->{name} has $attr->{has_uint64 +} uint64 parameter(s)\n" if ($attr->{has_uint64}); return; }, '^enums' => 'skip', } ); $parser->parse(\*DATA); __DATA__ <classes name="Panoply::BAR"> <public_methods> ...

Jenda
Enoch was right!
Enjoy the last years of Rome.