Probleme génération tableau après parsing XML

Probleme génération tableau après parsing XML - PHP - Programmation

Marsh Posté le 30-05-2006 à 14:56:21    

Bonjour à tous,
 
Je sollicite votre aide car je suis dans une impasse et j'ai un problème :( Après avoir longtemps cherché, sur le net et sur ce site, je n'ai pas trouvé de solutions à mon problème.
 
Le principe est simple.
 
J'ai un fichier XML contennant des données et un fichier XSL pour la mise en forme. J'ai une page PHP avec un champ de recherche. A l'envoi du formulaire, mon parseur de XML se lance puis génère ensuite un tableau HTML
 Tout fonctionne bien.
 
Problème : pour un soucis de respect de la casse, j'éffectue 3 lecture du fichier XML (exemple si je recherche "test", la première lecture va chercher "test", la deuxième "TEST" et la troisème "Test" pour tout couvrir). Donc j'ai 3 tableaux qui se génèrent mais en un seul, c'est à dire que cela forme un seul tableau dans lequel j'ai parfois des doublons. (Exemple si dans une description j'ai "Test" et "TEST" ). Ce que je souhaite faire concrètement c'est supprimer ces doublons. Je vous serais très reconnaissant si vous pouviez m'aider.
 
Mon parser :

Citation :


function parser2($fxml, $fxsl, $famille, $version, $auteur, $q){
 
 $xh = xslt_create();
 
 $file=fopen($fxml,"r" );
 $xml=fread($file,1024000);
 fclose($file);
 
 $file=fopen($fxsl,"r" );
 $xsl=fread($file,1024000);
 fclose($file);
 
 $arguments = array(
   '/_xml' => $xml,
   '/_xsl' => $xsl
   );
 
   $parameters = array(
   'no' => $famille,
   'no2' => $version,
   'no3' => $auteur,
   'no4' => $q
 );
 $result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments, $parameters);
 $result=str_replace("array","array_unique",$result);
 
 xslt_free($xh);
 echo $result;
 
}


 
Et le lancement du parsing :
 

Citation :


$recherche = strtolower($_POST['q']);
$recherche2 = strtoupper($_POST['q']);
$recherche3 = ucfirst($_POST['q']);
       
     parser2("./xml/faq.xml", "./xsl/faq4.xsl", "0", "0", "0", $recherche);
     parser2("./xml/faq.xml", "./xsl/faq4.xsl", "0", "0", "0", $recherche2);
     parser2("./xml/faq.xml", "./xsl/faq4.xsl", "0", "0", "0", $recherche3);


 
Je reste disponible si vous avez besoin d'autres renseignements. Merci d'avance pour votre aide
 
Akita
 

Reply

Marsh Posté le 30-05-2006 à 14:56:21   

Reply

Marsh Posté le 02-06-2006 à 09:23:54    

up

Reply

Marsh Posté le 02-06-2006 à 09:42:02    

moi j'ai pas compris pourquoi tu avais besoin d'appliquer 3 fois ta xslt...
Pourquoi tu fais pas un truc insensitive plutot?

Reply

Marsh Posté le 02-06-2006 à 13:35:38    

Parce que ça existe pas, on peut pas faire autrement :-(
 
Merci pour ta réponse

Reply

Marsh Posté le 02-06-2006 à 13:41:20    

bin google "xslt case insensitive", premier réponse:
http://www.topxml.com/xsl/articles/caseconvert/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed