Algorithme dénombrant les attributs de balises XML

ouhlaouhla -  
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je dois écrire une fonction PHP qui prend en paramètre un document XML (sous forme de string) et qui doit retourner le nombre total d'attributs du tag le plus utilisé dans le doc XML. Je m'explique : si par exemple le tag "a" est le plus utilisé dans le doc XML, la fonction doit compter le nombre total d'attribut de tous les tags "a" du document et le retourner.

Je patauge un peu, mon plus gros problème est que je ne vois pas comment identifier le tag le plus utilisé dans le doc XML. Si vous avez des idées je suis preneur :)!


A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Voici un début de solution en utilisant l'api Dom :

<?php

// mon tableau contenant le nombre de chaque element dans le document
$myElements = array();

// on charge le document xml
$doc = new DOMDocument();
$doc->load('book.xml');

// on récupère tous les elements
$allElements = $doc->getElementsByTagName('*');

foreach ($allElements as $e) {
$tagName = $e->nodeName;
if (!array_key_exists($tagName, $myElements)) {
$myElements[$tagName] = 1;
} else {
$myElements[$tagName]++;
}

}

var_dump($myElements);

On obtient un tableau contenant le nombre total de chaque élément du document. Il te suffit alors de trier ce tableau pour avoir le ou les éléments les plus utilisés.

Bonne journée
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Salut,

Tu peux exploiter les fonctionnalités de la classe "DOM".
0