XSL sur PHP : resultat aleatoire!
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:
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:
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:
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 ^^')
Code:
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> |
la div "pre" (la variable) ne contient que du javascript...
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 :yaisse2:
Je suis un peu bluffé du coup :$ des idées?