XML et condition php

WRInaute occasionnel
Bonjour à tous,

J'ai un petit soucis en XML! :oops:

Pour explication:
>> j'ai un fichier products.xml dans lequel j'ai 200 produits dans une dizaine de catégories différentes (ex: vetement, chaussure...)
Comme je n'ai qu'un fichier je suis obligé de poser une condition pour avoir sur ma page "vetement" que les produits dans cette catégorie.
J'ai donc pensé à ajouter dans l'URL une cat=vetment comme ceci:
produit.php?cat=vetement...
sauf que je coince car je ne sais pas comment l'intérpreter dans le code.

Voici ce que j'ai pour l'instant mais qui marche pas...
Code:
<?php





    $fichier = "xml/products.xml";

	

	function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)

    {

        global $derniereBaliseRencontree;



        $derniereBaliseRencontree = $nomBalise;

    }

   

    function fonctionBaliseFermante($parseur, $nomBalise)

    {

        global $derniereBaliseRencontree;

        $derniereBaliseRencontree = "";

    }

	

    function fonctionTexte($parseur, $texte)

    {
        global $derniereBaliseRencontree;

		switch ($derniereBaliseRencontree) {

			case "NAME":
								
				if($texte!=$_GET['cat']){
				exit;
				}
				else
				{
				echo "<p class='libelle'>Catégorie ".$texte."</p>";
				}
				break;
				
				
			//case "PRODUCTTYPE":

				//echo "<p class='libelle'>".$texte."</p>";

				//break;	
				

			case "PRODUCT_URL":


				echo "<span class='table'><span><a href='".$texte."'>";

				break;
				

			case "BIG":

				echo "<img src='".$texte."' border='0'/></a></span>\n";

				break;
				

			//case "PRICE":

				//echo "<p class='libelle'>".$texte." €</p>\n\n\n\n";

				//break;
				

			/*case "TEXTE_LANCEUR_COFFRET":

				$max=30;  

				if(strlen($texte)>=$max){$texte=substr($texte,0,$max);  

				$espace=strrpos($texte," ");  

				$texte=substr($texte,0,$espace)."..."; }

				echo "<p>".$texte."</p>\n";

				break;*/


			case "FIN":

				echo "</div></div>\n\n";

				break;

		}
    }

	

	

	



    $parseurXML = xml_parser_create();



    xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante", "fonctionBaliseFermante");

    xml_set_character_data_handler($parseurXML, "fonctionTexte");



    $fp = fopen($fichier, "r");

    if (!$fp) die("Impossible d'ouvrir le fichier XML");



    while ( $ligneXML = fgets($fp, 1024)) {

        xml_parse($parseurXML, $ligneXML, feof($fp)) or

            die("Erreur XML");

    }

    

    xml_parser_free($parseurXML);

    fclose($fp);

?>

A votre avis?
Merci pour votre aide :D
Vincent
 
WRInaute occasionnel
Le soucis est que ca ne fonctionne pas car s'il ne trouve pas la même catégorie que celle en parametre dans l'URL alors il "exit" du coup il sort complétement de la boucle et ne poursuit par les autres enregistrements.

Moi ce qu'il me faut c'est que s''il trouve pas, il aille à l'enregistrement suivant...[/quote]
 
Discussions similaires
Haut