FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  Parser du xml avec du php

 




nicodache, bool@y Tuning PC : gaugo Le salon de discussion : fran123, 1 utilisateur anonyme et 20 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parser du xml avec du php

n°4668
Le Veilleu​r
.:. .:.
Posté le 24-12-2004 à 17:07:06  profilanswer
 

Salut
 
Y en a t il qui s'y connaisse la dedans ?
J'ai trouvé plusieurs tuto, mais rien ne me permet d'arriver exactement a ce que je veux.
 
J'ai un fichier xml, dans ce genre la

Code :
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <menuGauche>
  3. <menu>
  4.    <sousmenu>
  5.      <titre>AA</titre>
  6.  <lien>?id=accueil</lien>
  7.    </sousmenu>
  8.    <sousmenu>
  9.      <titre>AA</titre>
  10.  <lien>?id=accueil</lien>
  11.    </sousmenu>
  12.  
  13.   <sousmenu>
  14.      <titre>AA</titre>
  15.  <lien>?id=accueil</lien>
  16.    </sousmenu>
  17. </menu>
  18. <menu>
  19.    <sousmenu>
  20.      <titre>AA</titre>
  21.  <lien>?id=accueil</lien>
  22.    </sousmenu>
  23.    <sousmenu>
  24.      <titre>AA</titre>
  25.  <lien>?id=accueil</lien>
  26.    </sousmenu>
  27.  
  28.   <sousmenu>
  29.      <titre>AA</titre>
  30.  <lien>?id=accueil</lien>
  31.    </sousmenu>
  32. </menu>
  33. </menuGauche>


 
Je souhaiterais afficher le menu de mon site.
Donc le contenu qui pointe vers le lien.
 
Donc en html
<a href=lien>le contenu de la balise titre</a>
 
Et ce pour l'ensemble des éléments du fichier xml
 
merci


Message édité par Le Veilleur le 24-12-2004 à 17:10:14

---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
mood
Google
Posté le 24-12-2004 à 17:07:06  profilanswer
 

n°4670
Deadog
Dain Bramaged
Posté le 24-12-2004 à 18:45:42  profilanswer
 

bah ? tu fais un doctype ! t'embète pas à parser ça ;)

n°4671
Le Veilleu​r
.:. .:.
Posté le 24-12-2004 à 18:53:41  profilanswer
 

J'ai trouvé une petite technique assez simple
http://www.clubic.com/c/tutorial-xml.php
 
il faut vriament que je m'achete un bon livre sur le xml, et php tant que j'y suis :D


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4672
Le Veilleu​r
.:. .:.
Posté le 24-12-2004 à 19:24:37  profilanswer
 

La je suis perdu :S
 
J'ai donc mon fichier xml
 

Code :
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <menuGauche>
  3. <menu>
  4.    <sousmenu>
  5.      <titre>Acceuil</titre>
  6.  <lien>acceuil</lien>
  7.    </sousmenu>
  8.    <sousmenu>
  9.      <titre>Actualités</titre>
  10.  <lien>actualites</lien>
  11.    </sousmenu>
  12.  
  13.   <sousmenu>
  14.      <titre>menu</titre>
  15.  <lien>accueil</lien>
  16.    </sousmenu>
  17.    <sousmenu>
  18.      <titre>B1</titre>
  19.  <lien>accueil</lien>
  20.    </sousmenu>
  21.    <sousmenu>
  22.      <titre>B2</titre>
  23.  <lien>accueil</lien>
  24.    </sousmenu>
  25.  
  26.   <sousmenu>
  27.      <titre>B3</titre>
  28.  <lien>accueil</lien>
  29.    </sousmenu>
  30. </menu>
  31. </menuGauche>


 
Le menu du site s'affiche bien, c'est nickel
 
POur mon site, j'insère en fait une page dans celui, dans le but d'avoir qu'une page de layout.
 
J'insere les pages dans la page principal grace à cela
 

Code :
  1. <?
  2.     $page = $_GET['id']; 
  3.     switch ($id)
  4.            {
  5.     case "acceuil":include($page .".php" );  break;
  6.     default:include("acceuil.php" ); break;
  7.                }
  8.      ?>


 
Le truc maintenant, c'est que je dois reussir à ecrire au tant de  
 

Code :
  1. case "acceuil":include($page .".php" );  break;


 
Que de lien que j'ai dans le fichier xml
 
J'ai crée une page php, qui me genere en fait

Code :
  1. case " acceuil" :include("acceuil.php" ); break; case " actualites" :include("actualites.php" ); break; case " accueil" :include("accueil.php" ); break; case " accueil" :include("accueil.php" ); break; case " accueil" :include("accueil.php" ); break; case " accueil" :include("accueil.php" ); break;


 
Mais il faudrait inserer ca dans le code plus haut. et la je suis perdu :'(
 
merci


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4678
nicodache
marmotte en chocolat concept ©
Posté le 25-12-2004 à 01:27:46  profilanswer
 

déja, la plus grosse faute dans ton code : accueil, et pas acceuil :o


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°4679
Le Veilleu​r
.:. .:.
Posté le 25-12-2004 à 01:29:07  profilanswer
 

lol, mais c'est corrigé en fait, regarde la dernier partie de code, c'est de la faute de frappe :p:p:p


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4680
Dr Lous
I see old password
Posté le 25-12-2004 à 11:33:58  profilanswer
 

un while et un regexp sur ton fichier xml
une fois ca ta un array avec tes links :)

n°4681
KnX
To be or not to code.
Posté le 25-12-2004 à 12:04:37  profilanswer
 

ou un xslt et un parser xslt :D ( quoi temps de calcul ? )
 
Cela dit ca peut être bien un cache pour ce genre de ptits trucs lourd et inutilement recalculés ( genre tu regarde si t'as un fichier précalculé , si tu l'a , tu regarde si il est plus récent que le .xml , si c'est le cas tu utilise le cache, sinon, tu parse pour créer le cache et tu l'utilise )

n°4682
Le Veilleu​r
.:. .:.
Posté le 25-12-2004 à 12:44:41  profilanswer
 

Ouille ouille, j'aurais du ecouter le cours de xml a la plade zzzzz. Je pense que vais m'orienter vers un bon oeuvrage papier et pour le php aussi.
 
Sinon pour mon probleme, je pensais simplement rajouter une ligne dans ma structure xml. pour faire un truc dans le genre
 
 
<sousmenu>
 <titre>B3</titre>
 <lien>accueil</lien>
 <page>case " acceuil" :include("acceuil.php" ); break;</page>
</sousmenu>
 
vous en pensez quoi ???


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4683
Deadog
Dain Bramaged
Posté le 25-12-2004 à 13:06:45  profilanswer
 

tu peux toujours construire un array remplie par ta section "lien", et ensuite simulé ton switch par un while sur l'array

n°4684
Le Veilleu​r
.:. .:.
Posté le 26-12-2004 à 13:52:13  profilanswer
 

En fait, j'ai trouvé une solution, j'ai modifié mon switch de ma page principale et ca roule.
 
Maintenant, faut pas se moquer
 
 <input name="date" type="text" id="date" value=" <? $jour = getdate();print_r($jour); ?>" >
 
Je voudrais afficher la date heure dans le format classique d'un champs formulaire, avant de mettre ca dans une bd. Mais la il me sort Array (un tableau donc ???)
 
ps : coldfusion powaaaa


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4685
nicodache
marmotte en chocolat concept ©
Posté le 26-12-2004 à 14:05:24  profilanswer
 

te faut vraiment afficher la date avant de la mettre dans la db ?
 
parce que je connais pas le php du tout, mais je suis convaincu qu'on peut faire plus simple si tu dois pas l'afficher...


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°4686
Le Veilleu​r
.:. .:.
Posté le 26-12-2004 à 14:08:49  profilanswer
 

oui je voudrais l'afficher.. au cas je voudrais tricher et poster une news qui affichera une autre date par exemple :p


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4687
nicodache
marmotte en chocolat concept ©
Posté le 26-12-2004 à 14:18:59  profilanswer
 

[:grut]


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°4688
Le Veilleu​r
.:. .:.
Posté le 26-12-2004 à 14:24:25  profilanswer
 

Qd je dis que le coldfusion c'est mieux, on a eu moins des msg d'erreurs...
 
La j'ai rien comme erreur, pourtant

Code :
  1. <?
  2.   include("../param/connexion.inc.php" );
  3.   mysql_query("INSERT INTO actualites VALUES('',$_POST[date],$_POST[auteur],$_POST[titre],$_POST[texte])" );
  4.   mysql_close();
  5. ?>


n'insère rien du tout


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4689
nicodache
marmotte en chocolat concept ©
Posté le 26-12-2004 à 14:26:54  profilanswer
 

manque pas un commit ou un truc du genre ?


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°4692
Dr Lous
I see old password
Posté le 26-12-2004 à 15:04:29  profilanswer
 

Le Veilleur a écrit :

Qd je dis que le coldfusion c'est mieux, on a eu moins des msg d'erreurs...
 
La j'ai rien comme erreur, pourtant

Code :
  1. <?
  2.   include("../param/connexion.inc.php" );
  3.   mysql_query("INSERT INTO actualites VALUES('',$_POST[date],$_POST[auteur],$_POST[titre],$_POST[texte])" );
  4.   mysql_close();
  5. ?>


n'insère rien du tout


 
 
 

Code :
  1. <?
  2.   include("../param/connexion.inc.php" );
  3.   mysql_query("INSERT INTO actualites (champs1, champs2, champs3, ..., champsN) VALUES('',".$_POST['date'].",".$_POST['auteur'].",".$_POST['titre'].",".$_POST['texte']." )" );
  4.   mysql_close();
  5. ?>


 
c mieux


---------------
Oseras-tu m'affronter ?
n°4693
nicodache
marmotte en chocolat concept ©
Posté le 26-12-2004 à 15:05:41  profilanswer
 

ca a l'air mieux effectivement ;)


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°4694
Le Veilleu​r
.:. .:.
Posté le 26-12-2004 à 16:21:21  profilanswer
 

Y a rien a faire :S
 
Ma page news1.php

Code :
  1. <table width="640"  border="0" align="center">
  2. <form name="form1" method="post" action="news2.php">
  3.   <tr>
  4.     <th colspan="3" scope="row">Ajouter une news</th>
  5.   </tr>
  6.   <tr>
  7.     <th width="14%" scope="row"><div align="left">Titre : </div></th>
  8.     <td width><input name="titre" type="text" id="titre" size="60"></td>
  9.     <td width="12%">&nbsp;</td>
  10.   </tr>
  11.   <tr>
  12.     <th scope="row"><div align="left">Texte : </div></th>
  13.     <td><textarea name="texte" cols="60" rows="6" id="texte"></textarea></td>
  14.     <td>&nbsp;</td>
  15.   </tr>
  16.   <tr>
  17.     <th scope="row"><div align="left">Date</div></th>
  18.     <td>
  19.  <input name="date" type="text" id="date" value=" <? echo 'value="' .getdate(). '"'; ?>" > </td>
  20.     <td>&nbsp;</td>
  21.   </tr>
  22.   <tr>
  23.     <th scope="row"><div align="left">Auteur:</div></th>
  24.     <td><input name="auteur" type="text" id="auteur"></td>
  25.     <td>&nbsp;</td>
  26.   </tr>
  27.   <tr>
  28.     <th scope="row"><div align="left"></div></th>
  29.     <td><input type="submit" name="Submit" value="Envoyer"></td>
  30.     <td>&nbsp;</td>
  31.   </tr>
  32.   <tr>
  33.     <th scope="row">&nbsp;</th>
  34.     <td>&nbsp;</td>
  35.     <td>&nbsp;</td>
  36.   </tr>
  37. </form> 
  38. </table>


 
ma page news2.php
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Document sans titre</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. </head>
  7. <body>
  8. <?
  9.   include("../param/connexion.inc.php" );
  10.   mysql_query("INSERT INTO actualites(id_actualites,date_actualites,auteur_actualites,titre_actualites,texte_actualites)
  11.                VALUES('',".$_POST['date'].",".$_POST['auteur'].",".$_POST['titre'].",".$_POST['texte']." )" );
  12.   mysql_close();
  13. ?>
  14. <table width="640" border="0" align="center">
  15.   <tr>
  16.     <th colspan="3" scope="row">News post&eacute;es avec succ&egrave;s </th>
  17.   </tr>
  18.   <tr>
  19.     <th scope="row">&nbsp;</th>
  20.     <td>&nbsp;</td>
  21.     <td>&nbsp;</td>
  22.   </tr>
  23.   <tr>
  24.     <th colspan="3" scope="row">Merci d'avoir post&eacute; une news sur LeVeilleur.net</th>
  25.   </tr>
  26.   <tr>
  27.     <th scope="row">&nbsp;</th>
  28.     <td><? echo $_POST['titre'];?></td>
  29.     <td>&nbsp;</td>
  30.   </tr>
  31.   <tr>
  32.     <th scope="row">&nbsp;</th>
  33.     <td></td>
  34.     <td>&nbsp;</td>
  35.   </tr>
  36. </table>
  37. </body>
  38. </html>


 
La récupération se fait bien car <? echo $_POST['titre'];?> m'affiche bien quelque chose. Mais rien ne s'integre dans la bd :(


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4695
Le Veilleu​r
.:. .:.
Posté le 26-12-2004 à 17:31:15  profilanswer
 

Je comprends vraiment pas la :'(


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4696
Le Veilleu​r
.:. .:.
Posté le 26-12-2004 à 17:40:58  profilanswer
 

Ca marche, il manquait des ''
mysql_query("INSERT INTO actualites(id_actualites,date_actualites,auteur_actualites,titre_actualites,texte_actualites) VALUES('','".$_POST['date_actualites']."','".$_POST['auteur_actualites']."','".$_POST['titre_actualites']."','".$_POST['texte_actualites']."')" );
 
il aurait pu me le dire... php de "(ç'(àç!çà(§!à)ç"'§'"


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4697
Dr Lous
I see old password
Posté le 26-12-2004 à 17:42:10  profilanswer
 

c pas le php... c tes requetes sql ke tu sais pas faire [:dslam]
 
:D


---------------
Oseras-tu m'affronter ?
n°4698
Le Veilleu​r
.:. .:.
Posté le 26-12-2004 à 18:10:42  profilanswer
 

:p
Maintenant je vais jouer avec les dates :D


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°4701
Le Veilleu​r
.:. .:.
Posté le 27-12-2004 à 14:16:08  profilanswer
 

Y en a qui savent comment on joue avec sax et dom pour le xml ? :'(


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
mood
Google
Posté le 27-12-2004 à 14:16:08  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  Parser du xml avec du php

 

Hit Parade