sub attr { my $node = shift; my $map = $node->getAttributes; for my $key ( keys %$map ) { next unless ( ref( $$map{$key} ) eq 'XML::DOM::Attr' ); my $val = $map->getNamedItem($key)->getValue; return "\[\@$key=\'$val\'\]"; } return undef; }