Algorithme dénombrant les attributs de balises XML

Fermé
ouhlaouhla - 11 oct. 2013 à 10:30
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 11 oct. 2013 à 15:47
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 lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
Modifié par Pitet le 11/10/2013 à 15:52
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 mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
11 oct. 2013 à 15:47
Salut,

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