Le problème vient probablement du fait que $dom->getElementsByTagName('client') remonte tous les nodes <client>. Si tu as 29000 nodes <client>, ça fait un tableau de 29000 éléments à chaque tour de...