Limiter le nombre de résultat d'un fichier xm

Fermé
Stany - 7 sept. 2009 à 09:30
 Stany - 7 sept. 2009 à 11:46
Bonjour,

Je voudrai limiter le nombre de résultat d'un fichier xml sur une de mes pages web.

J'utilise le script suivant :

<?php
$fichier = "www.fichier.xml";

// Ma propre fonction de traitement des balises ouvrantes
function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
{
// En fait... nous nous conteterons de mémoriser le nom de la balise
// afin d'en tenir compte dans la fonction "fonctionTexte"

global $derniereBaliseRencontree;

$derniereBaliseRencontree = $nomBalise;
}

// Ma propre fonction de traitement des balises fermantes
function fonctionBaliseFermante($parseur, $nomBalise)
{
// On oublie la dernière balise rencontrée
global $derniereBaliseRencontree;

$derniereBaliseRencontree = "";
}

// Ma propre fonction de traitement du texte
// qui est appelée par le "parseur"
function fonctionTexte($parseur, $texte)
{
global $derniereBaliseRencontree;

// Selon les cas, nous affichons le texte
// ou nous proposons un lien
// ATTENTION: Par défaut les noms des balises sont
// mises en majuscules

switch ($derniereBaliseRencontree) {
case "NAME":
echo "<div style='padding-bottom: 5px'><strong>Tournois : $texte</strong></div>";
break;
case "STARTDATE":
echo "Date est heure : $texte<br>";
break;
case "MAXPLAYERS":
echo "Joueurs maximum : $texte<br>";
break;
case "DESCRIPTION":
echo "description : $texte
break;
}
}

// Création du parseur XML
$parseurXML = xml_parser_create();

// Je précise le nom des fonctions à appeler
// lorsque des balises ouvrantes ou fermantes sont rencontrées
xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
, "fonctionBaliseFermante");

// Je précise le nom de la fonction à appeler
// lorsque du texte est rencontré
xml_set_character_data_handler($parseurXML, "fonctionTexte");

// Ouverture du fichier
$fp = fopen($fichier, "r");
if (!$fp) die("Impossible d'ouvrir le fichier XML");

// Lecture ligne par ligne
while ( $ligneXML = fgets($fp, 1024)) {
// Analyse de la ligne
// REM: feof($fp) retourne TRUE s'il s'agit de la dernière
// ligne du fichier.
xml_parse($parseurXML, $ligneXML, feof($fp)) or
die("Erreur XML");
}

xml_parser_free($parseurXML);
fclose($fp);
?>

Merci pour votre aide
A voir également:

2 réponses

M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
7 sept. 2009 à 11:02
Bonjour,

Déjà, pour commencer, je trouve bizarre de faire ainsi un parseur XML. la méthode par XSL est pourtant très puissante. Je te conseille de te pencher sur le XSL et XSL-T.

Sinon, pour ta méthode, tu peux créer une variable pour compter le nombre d'apparition des balises, et ne pas afficher au delà d'une certaine valeur.

Bien évidemment, sans savoir comment est construit ton XML, je ne peux pas être beaucoup plus précis...
0
Merci pour ta réponse.

Voici le fichier xml utilisé

http://www.ipoker.com/next-tournaments/whpokerclub-next-tournaments.XML

PS: je ne connais rien au php, c'est un script que j'ai recupéré sur le net.

Merci
0