Bonjour,
j'effectue des transformation xsl sur un site web xml vers html "enrichie de js"... celles ci peuvent se faire sur le client, ou sur le serveur
Lez probleme c'est que sur le serveur (wamp php5) le resultat de la transformation est de temps en temps aleatoire :
c'est a dir que tout d'un coup il va me parser 3 fois un noeux de texte sans raisons (je l'ai même vu me sortir plusieurs fois des noeux genre div sans plus de raison)...
C'est assé hallucinant je trouve qu'une meme feuille de style xsl puisse avoir des resultat differents avec les memes fichiers xml....
Voila le code php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 if (!isset($select[0][0])) die("<error>Aucun noeux selectionné</error>"); if ($select[0][0]->nodeName == "wobj"){ $xml = new DOMDocument; $xml->loadXML($select[0][3]->document->saveXML($select[0][0])); $xsl = new DOMDocument; $xsl->load('main/builder.xsl'); // Configuration du transformateur $proc = new XSLTProcessor; $proc->importStyleSheet($xsl); // attachement des règles xsl array_push($results, array($vals['id'], $proc->transformToXML($xml))); }
la partie d'un xml qui chie souvent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <div id="sendBox" db:style="position:absolute; left:13px; right:0px; bottom:0px; text-align:left"> <div id="Logged" style="display:block"> <input id='txt' style="height:1.5em; width:69%; display:inline"></input> <button id="sendit" style="height:1.5em; width:30%; background-color:white; display:inline; border:none">Send<event id="onclick">/*code js */</event></button></div> <div id="notLogged" style="display:none"> <b>Enregistrez vous pour utiliser la shoutbox!!</b> </div> </div>
Par exemple tout d'un coup il me sort :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <div id="notLogged" style="display:none"> <b>Enregistrez vous pour utiliser la shoutbox!!</b> Enregistrez vous pour utiliser la shoutbox!! </div> Enregistrez vous pour utiliser la shoutbox!! </div>
Le morceaux d'xsl qui est censsé pas fair ce genre de choses (enfin je croi pas ^^')
la div "pre" (la variable) ne contient que du javascript...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <xsl:template match="*"> <xsl:param name="dipher">false</xsl:param> <xsl:param name="path"></xsl:param> <xsl:param name="ID">{##ID##}_<xsl:value-of select="generate-id()"/>_<xsl:value-of select="@id"/></xsl:param> <xsl:variable name = "script" > <xsl:if test="./@id != ''"> if (!document.getElementById("<xsl:value-of select="$ID"/>")) alert("nod not found : <xsl:value-of select="$ID"/>"); <xsl:value-of select="$path"/>.<xsl:value-of select="./@id"/> = {up : <xsl:value-of select="$path"/>, _nod : document.getElementById("<xsl:value-of select="$ID"/>")}; </xsl:if> </xsl:variable> <xsl:if test="$script != ''"> <pre style="display:none"> <xsl:value-of select="$script"/> </pre> </xsl:if> <xsl:copy> <xsl:attribute name="id"><xsl:value-of select="$ID"/></xsl:attribute> <xsl:copy-of select="./@*[name() != 'id'][namespace-uri() != 'http://www.majax.org/db']"/> <xsl:apply-templates select="./*[name() != 'event'][name() != 'trigger'][name() != 'function'] | text()"> <xsl:with-param name="path"><xsl:value-of select="$path"/><xsl:if test="./@id != ''">.<xsl:value-of select="./@id"/></xsl:if></xsl:with-param> </xsl:apply-templates> </xsl:copy> </xsl:template>
Mais c'est super aleatoire !!! sa arrive rarement ... et encor plus rarement il m'a sortie plusieurs copies de la div "Logged"....
Je suis un peu etonné je croyai qu'XSL etait un language serieux :o![]()
Je suis un peu bluffé du coup :$ des idées?
Partager