Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2007, 15h33   #1
Membre du Club
 
Inscription : juillet 2006
Messages : 191
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 191
Points : 47
Points : 47
Par défaut [DOM] Compter un nombre de noeux ou attributs

Bonjour,
si il existe une fonction pour compter le nombre de noeux ou d'attributs xml,
car je suis entrain de créer un système de gestion de bannière partenaire avec Dom, et je voudrais ajouter un système de pages (par exemple mettre 10 bannière par page), et donc pour ça j'ai besoin de compter combien de bannieres partenaire sont présentes.

merci d'avance
starr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 15h35   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Il me semble que ca dépend de ta version de php (surtout de la méthode que tu utilises pour parser ton XML)
Pourrais tu nous donner plus d'informations sur la structure du XML et ton code PHP s'il te plait?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 15h46   #3
Membre du Club
 
Inscription : juillet 2006
Messages : 191
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 191
Points : 47
Points : 47
Code :
1
2
3
4
5
<?xml version="1.0" encoding="iso-8859-1"?>
<partenaires>
	<partenaire nom="Test" lien="http://www.test.eu" banniere="partenaires/1188500620_banniere.gif"/>
<partenaire nom="Test2" lien="http://www.test2.eu" banniere="partenaires/1188500620_banniere2.gif"/>
</partenaires>
Je souhaiterais juste pouvoir compter combien de balises <partenaire> il y a.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
							$doc = new DOMDocument('1.0','ISO-8859-1');
							$doc->load('partenaires.xml');
							$partenaires = $doc->getElementsByTagName('partenaire');
							$i=1;
							foreach($partenaires as $partenaire)
							{
								$banniere = $partenaire->getAttribute('banniere');
								$nom = $partenaire->getAttribute('nom');
								$lien = $partenaire->getAttribute('lien');
								print('<div>');
								//si y a pas de banniere image alors on écris juste le nom et le liens
								if($banniere=="")
								{
									print("<div");
									print("<a href='$lien' title='$nom'>$nom</a>");
									print("</div><br />");
								}
								else
								{
									print("<div");
									print("<a href='$lien' title='$nom'><img src='$banniere' alt='$nom'/></a>");
									print("</div><br /><hr class='barre'");
								}
								print('</div>');
							}
 
					?>
et voila le php
starr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 19h23   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
  • Avec une expression XPath (donc créer un objet DOMXPath puis faire appel à la méthode evaluate) recourant à la fonction count
  • On peut utiliser la méthode getElementsByTagName() sur le document pour récupérer un objet DomNodeList qui comporte un attribut length pour en obtenir le nombre
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 20h22   #5
Membre du Club
 
Inscription : juillet 2006
Messages : 191
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 191
Points : 47
Points : 47
merci julp pour votre secours toujours si précieux
jvais regarder ça a mon aise
starr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h57.


 
 
 
 
Partenaires

Hébergement Web