| |||||
| Dernière réponse | |
|---|---|
| Sujet : [XML/XSL] un<br/> dans le fichier XML, comment avoir <br> en html ? | |
| duch | petite question bête au passage, vous utiliser quoi pour le "merge XML/XSL" côté serveur?
Moi j'utilise php sur un serveur apache mais c'est un peu galère. |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| duch | petite question bête au passage, vous utiliser quoi pour le "merge XML/XSL" côté serveur?
Moi j'utilise php sur un serveur apache mais c'est un peu galère. |
| rotoutou | >youdontcare : JWhy est le responsable de l'assemblage du site :) |
| rotoutou | merci pour les links, les miens d'il y a un an c'etait presque toujours "error 404" :D
les liens encore valides c'etait ceux de mes dernieres experiences en xml, quand je bossais sur apache-cocoon, un mix asp-xml avec ilots de données etc, tres cool mais je suis passé sur du developpement visual C++ alors ... :/ je poste dans le thread l'adresse du site dés que c'est online par contre le merge du XML+XSL sera server-side (bah oui y a encore 50% des gens qui ont ie4.0 alors ...) a+ |
| JWhy | youdontcare> :jap: :love: :jap:
rotoutou> :jap: :love: :jap: vous me simplifiez la vie, messieurs ... c'est du bonheur que de travailler avec vous... ;) :hello: |
| youdontcare | clair c'est le bonheur de voir la source générée ! jusqu'à maintenant j'avançais à tatons ... d'un autre côté ça m'a permis d'apprendre à la dure :D
tu fileras l'adresse du site lorsqu'il sera prêt ? dans ce thread par ex ... si tu veux qq très bon tutorials xsl pour te rafraîchir les idées (j'ai appris grâce à ceux-ci) : http://www.w3schools.com/xsl/default.asp http://zvon.org/xxl/XSLTutorial/Books/Book1/index.html http://zvon.org/xxl/XPathTutorial/ [...] mples.html |
| rotoutou |
|
| youdontcare | excellent ! à mon tour de te remercier :jap:
j'avais tenté des générateurs xsl->html comme lotusxsl, mais c'était un merdier incroyable. bon je vais moins galérer maintenant :D |
| rotoutou |
|
| youdontcare | au temps pour moi ... je teste avec ie, donc je n'ai pas la source générée ... :(
essaye avec cette template, ça devrait être bon : <xsl:template match="A"> <xsl:for-each select="node()"> <xsl:copy-of select="."> </xsl:for-each> </xsl:template> |
| rotoutou | bon j'ai mis une grosse rustine :
<xsl:template match="A"> <xsl:for-each select="*|text()"> <xsl:choose> <xsl:when test="not(node())"> </xsl:when> <xsl:otherwise > <xsl:copy-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> si le node A est déclaré comme ça : <A><p> textes avec balises html</p></A> ça marche bizarrement si y a pas les <p></p> (<A>textes avec balises html</A> ) ça marche pas :/ merci quand meme pour l'aide :hello: |
| rotoutou | arghh ! pareil, le xsl:copy-of ajoute le nom du node :/
(j'ai essayé la methode du template, je pense que le for-each va donner pareil :/) bon je donne une partie du xml et le xsl, si ça interesse qqun de jeter un coup d'oeil pour m'aider (c'est pas pour moi ni pour mon boulot, j'aide pour le site de la team Folding@Home) xml : <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="FAQ.xsl"?> <FAQ Name="La FAQ"> <Section Name="Généralités sur le projet" Link="WHATIS"> <SubSection Link="WHATIS0" ToPrev="WHATIS" ToNext="WHATIS1"> <Q>Folding ? ça veut dire quoi ça ?</Q> <A>On peut traduire le terme "folding" par repliement, du verbe "to fold" : plier. </A> </SubSection> <SubSection Link="WHATIS1" ToPrev="WHATIS0" ToNext="TOP"> <Q>Le but du projet Folding@Home</Q> <A>Le but du projet Folding@Home est de resoudre le probleme du repliement des protéines. <br/><br/> Ce probleme est le saint graal de la biophysique moléculaire moderne, mais sa résolution implique d'enormes quantités de calculs.<br/><br/> Le projet lancé par l'université de Stanford se sert de la technologie des ordinateurs distribué pour arriver à résoudre ce probleme. </A> </SubSection> </Section> </FAQ> xsl : (y a un <!--c est ici que ça chie grave--> où ça chie grave :D ) <?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="html"/> <xsl:template match="/"> <html> <head> <title><xsl:value-of select="FAQ/@Name"/></title> <link rel="stylesheet" type="text/css" href="./Sheet.css"/> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> </head> <body bgcolor="White" topmargin="0"> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="/FAQ"> <a name="TOP"></a> <p align="center"><img src="./title3.jpg" WIDTH="304" HEIGHT="73"/></p> <h1><xsl:value-of select="@Name"/></h1> <!-- start menu --> <ul> <xsl:for-each select="Section"> <p> <li> <a href="#{@Link}"><xsl:value-of select="@Name"/></a> </li> <ul> <xsl:for-each select="SubSection"> <li> <a href="#{@Link}"><xsl:value-of select="Q"/></a> </li> </xsl:for-each> </ul> </p> </xsl:for-each> </ul> <!-- end menu --> <br/><br/> <xsl:for-each select="Section"> <!-- start section --> <a name="#{@Link}"></a> <br/><br/> <H1><xsl:value-of select="@Name"/></H1> <!-- end section --> <br/> <xsl:for-each select="SubSection"> <!-- start subsection --> <p> <table border="0" width="100%"> <tr> <td width="90%"> <a name="#{@Link}"></a> <H2><xsl:value-of select="Q"/></H2> </td> <td width="9%" valign="top"> <a href="#TOP"><img alt="Top" src="./top.gif" border="0" WIDTH="17" HEIGHT="17"/></a> <a href="/"><img alt="Accueil" src="./home.gif" border="0" WIDTH="17" HEIGHT="17"/></a> <a href="#{@ToPrev}"><img alt="Précédant" src="./previous.gif" border="0" WIDTH="17" HEIGHT="17"/></a> <a href="#{@ToNext}"><img alt="Suivant" src="./next.gif" border="0" WIDTH="17" HEIGHT="17"/></a> </td> </tr> </table> <!--c est ici que ça chie grave--> <p><xsl:apply-templates select="./A" /></p> <!--<p><xsl:copy-of select="A"/></p>--> </p> </xsl:for-each> </xsl:for-each> </xsl:template> <xsl:template match="A"> <xsl:copy-of select="." /> </xsl:template> </xsl:stylesheet> oui je sais c'est le pire .xsl que vous ayez vu, mais ... :D [edit]--Message édité par rotoutou--[/edit] |
| youdontcare | mauvaise heure pour coder ... ? :D
tu peux sélectionner les nodes et afficher leur contenu : tu sélectionnes le chemin (a/) et affiches le contenu avec "." avec un foreach ... <xsl:for-each select="A"> <xsl:copy-of select="." /> </xsl:for-each> ... ou par templates : tu mettras un <xsl:apply-templates /> ... je sais pas où, vu ton exemple. <xsl:template match="A"> <xsl:copy-of select="." /> </xsl:template> |
| rotoutou | aille, le :
<p><xsl:copy-of select="A"/></p> me donne : <p> <A> blabla<br>blabla </A> </p> tout mon texte est en couleur anchor !! :/ et apparement y a pas d'option à xsl:copy-of pour lui dire de ne pas inclure tout le node mais seulement le contenu de ce node :/ pour avoir : <p> blabla<br>blabla </p> bon je vais me coucher, si qqun a une idée, je prends :D A+ |
| rotoutou | merde il etait 4h30, faudrait jamais devoir coder à ces heures, apres on s'etonnes de faire plein de conneries, j'espere que j'arriverai à relire mon code demain ;)
a+ |
| rotoutou | ouah !!! merci tu viens de me sauver ma nuit là ... (encore qu'il est ouh là là 5h30 !)
pour l'erreur c'est pas mon parseur, je me suis gourré en réduisant mon .xsl de 200 lignes pour faire plus simple :) j'avais pas testé l'exemple fourni, sorry :/ et encore merci ! :jap: |
| youdontcare | à la place de ton xsl:value-of, utilises xsl:copy-of qui lui fait une copie brute.
<xsl:copy-of select="." /> question : il marche vraiment ton xsl ? tu matches "/a", et dans cette sélection tu demandes value-of "a" ... ce qui donne un xpath /a/a. tu t'es planté en recopiant ou c'est ton parseur qui bugge ? :) |
| rotoutou | salut j'ai ça :
dans a.XML : <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="a.xsl"?> <a> coucou<br/> les gars </a> dans a.xsl : <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/a"> <html> <head> <xsl:value-of select="a"/> </head> </html> </xsl:template> </xsl:stylesheet> et j'obtiens <html> <head> coucou les gars </head> </html> à la place de : <html> <head> coucou <br> les gars </head> </html> j'ai pensé mettre un <xsl:apply-templates/> au debut du fichier XSL et ça dans la liste des templates : <xsl:template match="br"> <br><xsl:apply-templates/></br> </xsl:template> mais ça marche pas :/ qqun a une idée ? pareil pour les <ul></li> :) a+ |




