Bonjour,

J'ai un fichier xml de ce type :

<machin>

  <untruc id="2">
    <lala>...</lala>
    <lala>...</lala>
    <lala>...</lala>
  </untruc>

  <untruc id="1">
    <lala>...</lala>
    <lala>...</lala>
  </untruc>

</machin>


Maintenant je souhaite, en php, compteur le nombre de "lala" dans "untruc". Donc je me penche vers la fonction DOMDocument -> getElementsByTagName(); sauf que cette fonction va me rendre le nombre d'éléments dans tout le document (c'est-à-dire 6) alors que je voulais par exemple : 2 pour 1er untruc et 3 pour 2e untruc.

Extiste-t-il une fonction qui puisse me permette de calculer ce nombre d'éléments présent dans un autre élément ?
Ou dois-je créé un nouvelle élément <nblala>3<nblala>

Merci
Modifié par raffoul (17 May 2007 - 17:23)
Tout simplement en ajoutant à getelementsbytagname une condition, if(tagtruc[I].id =="1"){nombreElement1=+1}. Ou alors encore plus simple en changeant le nom des tags, untruc1, untruc2, comme ça t'as pas besoins d'id.
Je ne peux pas utilier ta 2e solution par contre, pour ta première solution je ne vois pas ce que tu veux faire. J'ai beau regardé le manuel, il n'y a rien dans ce gout là.
Hello, si tu peux utiliser XSL il y a la fonction count() très pratique:
<xsl:value-of select="count(machin/untruc[id=1]/lala)"/>


Après tu peux aussi facilement créer des statistiques.
Modifié par Bellami (12 Mar 2012 - 01:06)