Sì...la maggiorparte delle lib XML (fra cui quella consigliata) possono effettuare la ricerca per nome o attributo.
Da quello che ho capito potresti visitare l'albero in modo completo

pseudo-codice

codice:
visita(nodo, attributi_cercati)
{
   for(nodo_corrente = nodo->primo_figlio;
       nodo_corrente is not null;
       nodo_corrente = nodo_corrente->fratello_successivo)
   {
        
      visita(nodo_corrente, attributi_cercati);
   } 
 
   for_each(attributi_cercati)
   {
       se il nodo possiede l'attributo i-esimo stampa info
   }
}