Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1022 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [xml]Les bases pour inclure un fichier xml dans du xhtml/ + php now :)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[xml]Les bases pour inclure un fichier xml dans du xhtml/ + php now :)

n°574680
dd_005
multitask user
Posté le 24-11-2003 à 15:39:53  profilanswer
 

Hello tout le monde.
Hmm, je commence sérieusement à m'interresser au xml aujourd'hui. Alors je me suis dit que je pourrais commencé par faire ma page de liens...
le fichier xml devrait ressembler à ca...


<? echo '<?xml version="1.0" encoding="ISO8859-1" ?>';  
echo '<?xml-stylesheet type="text/css" href="cd_catalog.css"?>';?>
<links>
 <element rubrique="3D">
  <lien1>
   <adresse url="http://www.3dvf.com">3dvf.com</adresse>
   <description>Site de news,...</description>
  </lien1>
  </element>
 <element rubrique="Autres">
  <lien1>
   <adresse url="http://www.google.ch">google.ch</adresse>
   <description>Le meilleur moteur de recherche</description>
  </lien1>
  <lien2>
   <adresse url="http://www.lesjoyeuxdrilles.com/">Les Joyeux Drilles.com</adresse>
   <description>Site d'humour</description>
  </lien2>
 </element>
</links>


 
maintenant le prob c'est pour l'inclure dans mon site...
avant c'était un bête <?include "links.php"?> au milieu de mon fichier xhtml... :D
 
comment s'y prendre pour que de se fichier xml il en ressorte qqch du genre:
 


<h2>3D</h2>
<a href="http://3dvf.com">3dvf.com</a>
<p>Site de news,...</p>


 
J'ai pas mal chercher, mais je me perd trop et j'ai pas trouvé de bons tutoriaux... :o
Des liens, tutoriaux???
Merci d'avances [:dd_005]


Message édité par dd_005 le 27-11-2003 à 11:03:04

---------------
http://blog.numerisound.com
mood
Publicité
Posté le 24-11-2003 à 15:39:53  profilanswer
 

n°574706
dd_005
multitask user
Posté le 24-11-2003 à 15:53:01  profilanswer
 

je crois que j'ai trouvé une piste ... :o
http://forum.hardware.fr/forum2.ph [...] 121&cat=10


---------------
http://blog.numerisound.com
n°574719
dd_005
multitask user
Posté le 24-11-2003 à 15:59:07  profilanswer
 

bon, a première vue il faut que je crée un fichier xsl...
mais après?, pour l'inclure dans mon fichier xhtml dans un div... c'est possible?
Quelle solution?
 :jap:


---------------
http://blog.numerisound.com
n°574786
uriel
blood pt.2
Posté le 24-11-2003 à 16:34:33  profilanswer
 

aucune reponse mais je suis interessé [:drapo]


---------------
IVG en france
n°574812
fastclemmy
(re-)Dictateur en plastique
Posté le 24-11-2003 à 16:56:09  profilanswer
 

Génère ton fichier XHTML via PHP (parsing XSL côté serveur).

n°574880
dd_005
multitask user
Posté le 24-11-2003 à 17:20:42  profilanswer
 

fastclemmy a écrit :

Génère ton fichier XHTML via PHP (parsing XSL côté serveur).


:jap:
tu pourrais m'en dire plus???
un petit exemple :??:
donc en faite la chose ce présenterais comme ca:
index.php avec include"links.php" -> ce links.php génére un xsl d'après le xml...
je suis pas sûre d'avoir bien compris le truc là...


---------------
http://blog.numerisound.com
n°574893
fastclemmy
(re-)Dictateur en plastique
Posté le 24-11-2003 à 17:34:37  profilanswer
 

Ton fichier links.php doit recevoir des arguments (ici un exemple avec parsing via domXML) :

Code :
  1. <?php
  2. # Parametres
  3. $array_params = array('cat' => $cat,
  4.  'debut' => $debut,
  5.  'fin' => $fin,);
  6. # Chargement de la feuille de style
  7. $xslt = domxml_xslt_stylesheet_file('liens_liloli2.xsl');
  8. # Chargement du fichier XML
  9. $xml = domxml_open_file('liens_liloli.xml');
  10. # Transformation
  11. $html = $xslt->process($xml,$array_params);
  12. # Affichage
  13. echo $html->html_dump_mem();
  14. ?>


 
Dans ton fichier xsl tu peux les récupérer en déclarant au début :

Code :
  1. <xsl:param name="cat"/>
  2. <xsl:param name="debut"/>
  3. <xsl:param name="fin"/>


 
Ensuite dans ton fichier XSL tu peux les exploiter avec $cat exemple :

Code :
  1. <xsl:choose>
  2. <xsl:when test="$cat&gt;=1">
  3.     <h1><xsl:value-of select="liens/categorie[@id=$cat]/intitule"/></h1>
  4. </xsl:when>
  5. </xsl:choose>


 
HTH

n°574903
dd_005
multitask user
Posté le 24-11-2003 à 17:46:35  profilanswer
 

merci beaucoup  :jap:
là j'ai de quoi m'amuser un peu [:ddr555] [:mad_overclocker]


---------------
http://blog.numerisound.com
n°575070
dd_005
multitask user
Posté le 24-11-2003 à 19:55:32  profilanswer
 

ptite question:
on est obligé de lui donner des paramètres?
si je veux afficher tout mon xml y'en a pas besoin. non?
 
il me dit qu'il trouve pas mes fichiers... (index.xml et xsl)
ca peut venir d'ou? (a part du nom de fichier parce que ca je sais que je l'ai écrit juste :o)
:jap:


Message édité par dd_005 le 24-11-2003 à 19:55:51

---------------
http://blog.numerisound.com
n°575091
dd_005
multitask user
Posté le 24-11-2003 à 20:15:36  profilanswer
 

a vrai dire ca fait tout planter mon site [:ddr555]
links.xsl

<?echo '<?xml version="1.0" encoding="ISO-8859-1" ?>';?>
  <xsl:stylesheet
    version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/>
   
  <xsl:param name="rubrique"/>
  <xsl:template match="/">
    <h1><xsl:value-of select="$rubrique"/></h1>
    <xsl:for-each select="links/rubrique">
     <xsl:choose>
         <h2><a>
              <xsl:attribute name="href"><xsl:value-of select="lien/url"/></xsl:attribute>
              <xsl:value-of select="lien/adresse"/>
              </a></h2>
     <p><xsl:value-of select="description"/></p>
     </xsl:choose>
    </xsl:for-each>
    </xsl:template>
   
  </xsl:stylesheet>


 
links.php

<?
  # Chargement de la feuille de style
  $xslt = domxml_xslt_stylesheet_file('links.xsl');
   
  # Chargement du fichier XML
  $xml = domxml_open_file('links.xml');
   
  # Transformation
  $html = $xslt->process($xml,$array_params);
   
  # Affichage
  echo $html->html_dump_mem();
  ?>


 
ca doit être la première ligne du links xsl qui fait tout cafouiller :D
je renome le fichier en linksxsl.php??
je change cette ligne?
si je mets dans mon site partout des balises <?php ?> au lieu de <? ?> ca va changer qqch??
...
 
ps:y'a surement d'autres choses louches.. :whistle:


---------------
http://blog.numerisound.com
mood
Publicité
Posté le 24-11-2003 à 20:15:36  profilanswer
 

n°575107
metos
҉ OOoo hi-lo powered
Posté le 24-11-2003 à 20:33:01  profilanswer
 

ca fait quoi le xml ?


---------------
icite ca shoot : albphoto.fr   //   la ca bricole : albworkshop.fr  //  A VENDRE Canon ST-E2
n°575384
dd_005
multitask user
Posté le 25-11-2003 à 09:46:22  profilanswer
 

pour mon links.php j'ai essayé ce code:

<?
// Allocate a new XSLT processor
$xh = xslt_create();
 
// Process the document, returning the result into the $result variable
$result = xslt_process($xh, 'links.xml', 'links.xsl');
if ($result) {
    print "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    print " variable, the \$result variable has the following contents\n<br>\n";
    print "<pre>\n";
    print $result;
    print "</pre>\n";
}
else {
    print "Sorry, sample.xml could not be transformed by sample.xsl into";
    print "  the \$result variable the reason is that " . xslt_error($xh) .  
    print " and the error code is " . xslt_errno($xh);
}
 
xslt_free($xh);
  ?>


 
là l'erreure est clairement sur la 1ère ligne de mon links.xml mais ca fait plus tout planter :)
il doit y avoir ca qui fait foirer (le echo c'était pour essayer mais ca à pas l'aire très concluant sur un fichier.xml... je peux changer le suffixe du fichier sans prob?? fichierxml.php par exemple...:??:)

<? echo '<?xml version="1.0" encoding="ISO8859-1" ?>';  
echo '<?xml-stylesheet type="text/css" href="css.css"?>';?>


 
et ca:

<?xml version="1.0" encoding="ISO-8859-1" ?>


 
:sweat:


---------------
http://blog.numerisound.com
n°575386
fastclemmy
(re-)Dictateur en plastique
Posté le 25-11-2003 à 09:49:18  profilanswer
 

C'est quoi le message d'erreur ?

n°575391
dd_005
multitask user
Posté le 25-11-2003 à 09:54:46  profilanswer
 

Warning: Sablotron error on line 1: XML parser error 5: unclosed token in /home/.sites/23/site165/web/e-portfolio/2/links.php on line 23
Sorry, sample.xml could not be transformed by sample.xsl into and the error code is 2 the $result variable the reason is that XML parser error 5: unclosed token1
 
:o


---------------
http://blog.numerisound.com
n°575392
fastclemmy
(re-)Dictateur en plastique
Posté le 25-11-2003 à 09:56:36  profilanswer
 

Forcément... Le code que je t'ai filé c'est pour parser avec DomXML, pas Sablotron...
 
La bonne syntaxe :

Code :
  1. <?php
  2. # Tableau des paramètres
  3. $array_params = array(
  4.               'param.1' => 'hello world',
  5.               'param.2' => 'bonjour le monde');
  6. # Ouverture d'un gestionnaire XSLT
  7. $xh = xslt_create();
  8. # Tranformation des documents
  9. $res = xslt_process($xh, 'test.xml', 'test.xsl',NULL,array(),$array_params);
  10. # Fermeture du gestionnaire
  11. xslt_free($xh);
  12. # Affichage
  13. echo $res;
  14. ?>


 
(tiré de http://www.neokraft.net/docs/xslt/chap4.html)

n°575395
darklord
You're welcome
Posté le 25-11-2003 à 09:59:40  profilanswer
 

chocoboy reviens !! [:sisicaivrai]


---------------
Just because you feel good does not make you right
n°575402
dd_005
multitask user
Posté le 25-11-2003 à 10:06:15  profilanswer
 

:jap:
par contre ca change pas trop le prob d'erreure..
 
Warning: Sablotron error on line 1: XML parser error 5: unclosed token in /home/.sites/23/site165/web/e-portfolio/2/links.php on line 49
 
ligne 49 du links.php

 $res = xslt_process($xh, 'links.xml', 'links.xsl',NULL,array(),$array_params);


---------------
http://blog.numerisound.com
n°575403
dd_005
multitask user
Posté le 25-11-2003 à 10:10:34  profilanswer
 

fastclemmy > je vais déjà regarder ton lien, il m'a l'air pas trop mal :jap: :jap: :jap: :jap:


---------------
http://blog.numerisound.com
n°575419
dd_005
multitask user
Posté le 25-11-2003 à 10:32:06  profilanswer
 

bon, j'ai essayé avec leur exemple et ca m'a tout l'aire de fonctionner...
l'erreure provient donc certainement de links.xsl :??:
je vais essayer de transformer petit à petit leur exemple pour arriver à ce que je voudrais...


---------------
http://blog.numerisound.com
n°575428
fastclemmy
(re-)Dictateur en plastique
Posté le 25-11-2003 à 10:42:37  profilanswer
 

Oui, commence simple :jap:

n°575471
dd_005
multitask user
Posté le 25-11-2003 à 11:16:59  profilanswer
 

:sweat: je capte pas pourquoi ca marche pas...
 
mon .xsl

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet
  version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/>
 
<xsl:template match="/">
 <xsl:for-each select="links/rubrique">
  <h1><xsl:value-of select="links/rubrique/rub"/></h1>
 </xsl:for-each>
 <xsl:apply-templates/>
</xsl:template>
 
</xsl:stylesheet>


 
et ca me donne ca dans la source de ma page...

<h1></h1>
<h1></h1>
 
 3D
   
   
   http://www.3dvf.com
   3dvf.com
   Site de news,...
   
 
 
 Autres
   
   http://www.google.ch
   google.ch
   Le meilleur moteur de recherche
   
   
   http://www.lesjoyeuxdrilles.com
   Les Joyeux Drilles.com
   Site d'humour


---------------
http://blog.numerisound.com
n°575475
dd_005
multitask user
Posté le 25-11-2003 à 11:18:34  profilanswer
 

mouarf c'est bon :)
je crois que je commence à comprendre.... [:meganne]


---------------
http://blog.numerisound.com
n°575486
dd_005
multitask user
Posté le 25-11-2003 à 11:24:04  profilanswer
 

bon, en faite je commence à mettre mon texte en forme. le seul hic c'est que j'ai le texte mis en forme+ tout le texte pas mis en forme qui s'affiche...
( http://www.numerisound.com/e-portfolio/2/ section lien)


Message édité par dd_005 le 25-11-2003 à 11:24:17

---------------
http://blog.numerisound.com
n°575508
dd_005
multitask user
Posté le 25-11-2003 à 11:37:44  profilanswer
 

pour info...
 
..
</xsl:for-each>
<xsl:apply-templates/>
</xsl:template>
...
 
c'était ca qui reprennait tout le texte


---------------
http://blog.numerisound.com
n°575886
chocoboy
Posté le 25-11-2003 à 19:25:29  profilanswer
 

DarkLord a écrit :

chocoboy reviens !! [:sisicaivrai]


 
Cocoon 2 bien sur !
ahhhh, quoi ? c'était pas ca la question ?  :D

n°575896
chocoboy
Posté le 25-11-2003 à 19:44:23  profilanswer
 

un exemple fait avec cocoon 2 :
 
le cv en HTML : http://81.57.39.164:8080/cocoon/co [...] model.html
 
le XML correspondant :  
http://81.57.39.164:8080/cocoon/co [...] _model.xml
 
le XSL effectuant la transformation XML->HTML :
http://81.57.39.164:8080/cocoon/co [...] agiccv.xsl
 
le XSL effectuant la transformation XML(magiccv)->XML(docbook) :
http://81.57.39.164:8080/cocoon/co [...] ocbook.xsl
 
le XSL:FO généré depuis le XML(docbook) après application des XSL xml2pdf :
http://81.57.39.164:8080/cocoon/co [...] v_model.fo
 
le PDF généré :
http://81.57.39.164:8080/cocoon/co [...] _model.pdf
 
 
... voila un exemple assez sympa et pas trop compliqué en full XML/XSL pour générer un petit CV vers des sorties multiples ...
j'espère que ca te donnera envie de creuser !

n°575949
darklord
You're welcome
Posté le 25-11-2003 à 21:03:00  profilanswer
 

[:prosterne]

n°575996
dd_005
multitask user
Posté le 25-11-2003 à 21:40:08  profilanswer
 

merci pour tout ca...
en + j'ai vu un topic sur cocoon 2 et j'avais pas vraiment compris à quoi ca servai [:ddr555]
 
+je découvre xml + je trouve ca intéressant  :)  :jap:  
 
[hs mais pas tant que ca]
En faite je me demandais quand utiliser xml et quand utilisé une base mysql.

  • A première vue je dirais mysql pour des choses complexent/grosses/... (forum, grosse base de donnée,...)
  • xml quand à lui peut très bien convenir pour des choses simples commes news, (petite)bases de liens, gallerie, cv,...

j'aurais aimé avoir votre avis là dessu :)
[/hs]


Message édité par dd_005 le 25-11-2003 à 21:41:30

---------------
http://blog.numerisound.com
n°577258
dd_005
multitask user
Posté le 27-11-2003 à 10:56:59  profilanswer
 

hmm, une petite question encore...
si j'ai un xml du genre:
<news>
   <ne id=2>
   </ne>
   <ne id=1>
   </ne>
</news>
 
c'est possible de récupèrer l'id de la dernière news via php??
pour faire afficher 3news j'aurais:
$début = 363;
$fin = 360;
 
ca peut fontionner ?
une autre technique??
 
[:ojap]


---------------
http://blog.numerisound.com
n°577404
dd_005
multitask user
Posté le 27-11-2003 à 13:28:10  profilanswer
 

bon, je crois que pour finir (sauf si quelqu'un a une réponses au question ci-dessu) je vais faire comme ca:
 
<news>
   
</news>
<archives>
   
</archives>
 
mais bon, là j'ai pas vraiment l'impression d'utiliser au max xsl/xml/php... [:pulpipi]


---------------
http://blog.numerisound.com
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [xml]Les bases pour inclure un fichier xml dans du xhtml/ + php now :)

 

Sujets relatifs
[XHTML] Validation XHTML Framset avec Javascript et ASP [Réglé]Recherche: couper un fichier pdf automatiquement en plusieurs petits
aide sur les délimiteur de fichier sous accesscréation de fichier help
[JAVA]Ecrire lire et creer un fichier txt[JavaWebStart] Lire et écrire dans un fichier via HTTP
gestion de fichierest il possible d'afficher un pdf à partir d'un fichier word?
ouvrir fichier texte en binaire, réinventage de roue???Rattacher un descripteur de fichier à un fstream
Plus de sujets relatifs à : [xml]Les bases pour inclure un fichier xml dans du xhtml/ + php now :)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR