Bonjour,
Voilà je butte sur un problème étrange et je ne comprends pas ce qui se passe, pourtant tout semble correct dans le DOM inspector de Firefox ainsi que le plugins FireBug.
Utilsation : Firefox (2.0.0.1) et IE 6
Mon tableau se garnit bizarement.
Mon fichier "client"
Mon fichier PHP qui génére le XML (des données aléatoire )
Mon fichier XSL
Merci de votre aide
Voilà je butte sur un problème étrange et je ne comprends pas ce qui se passe, pourtant tout semble correct dans le DOM inspector de Firefox ainsi que le plugins FireBug.
Utilsation : Firefox (2.0.0.1) et IE 6
Mon tableau se garnit bizarement.
Mon fichier "client"
<html>
<head>
<title>Transformation XSLT</title>
<script type="text/javascript">
function loadXML(url)
{
var xmlDoc;
/* chargement du fichier XML */
try {
// navigateur basé sur Gecko
if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(url);
// ActiveX pour Internet Explorer
} else if (window.ActiveXObject) {
try {
xmlDoc = new ActiveXObject('Msxml2.XMLDOM');
} catch (e) {
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
}
xmlDoc.async = false;
xmlDoc.load(url);
// à l'aide de lobjet XMLHTTPRequest
} else if (window.XMLHttpRequest) {
xmlDoc = new XMLHttpRequest();
xmlDoc.overrideMimeType('text/xml');
xmlDoc.open('GET', url, false);
xmlDoc.send(null);
if (this.xmlDoc.readyState == 4) xmlDoc = xmlDoc.responseXML;
}
} catch (e) {
return e;
}
return xmlDoc;
}
function transform(id)
{
var xml = loadXML(artisteURL);
var xsl = loadXML(paroleURL);
try {
// navigateur basé sur Gecko
if (window.XSLTProcessor)
{
var fragment;
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
fragment = xsltProcessor.transformToFragment(xml, document);
var target = document.getElementById(id);
target.appendChild(fragment);
document.appendChild(target);
// ActiveX pour Internet Explorer
} else if (window.ActiveXObject) {
var target = document.getElementById(id);
target.innerHTML = xml.transformNode(xsl);
}
} catch (e) {
return e;
}
}
var artisteURL = 'dyn.php';
var paroleURL = 'xsldyn.xsl';
</script>
</head>
<body>
<table border="1">
<thead>
<tr>
<th onclick="transform('donnee');">C1</th>
<th>C2</th>
<th>C3</th>
</tr>
</thead>
<tbody id="donnee">
</tbody>
</table>
</body>
</html>
Mon fichier PHP qui génére le XML (des données aléatoire )
<?php
function Hasard()
{
return rand(1,100);
}
function RetourLignes()
{
$strLignes = '';
$nbLigne = rand(1,5);
for ($i=0;$i<$nbLigne;$i++)
{
$strLignes .= '<ligne>';
$strLignes .= '<cell value="'. Hasard() .'" />';
$strLignes .= '<cell value="'. Hasard() .'" />';
$strLignes .= '<cell value="'. Hasard() .'" />';
$strLignes .='</ligne>';
}
return $strLignes;
}
header('Content-Type: text/xml;charset=utf-8');
$monxml = '<?xml version="1.0" encoding="UTF-8" ?>';
/*$monxml .= '<?xml-stylesheet href="xsldyn.xsl" type="text/xsl" ?>';*/
$monxml .= '<grille>';
$monxml .= RetourLignes();
$monxml .= '</grille>';
echo $monxml;
?>
Mon fichier XSL
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
version="1.0"
encoding="utf-8"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
indent="yes" />
<xsl:template match="/">
<xsl:apply-templates select="grille" />
</xsl:template>
<xsl:template match="grille">
<xsl:for-each select="ligne">
<tr>
<xsl:for-each select="cell">
<td>
<xsl:value-of select="@value" />
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
<!--<div>test</div>-->
</xsl:template>
</xsl:stylesheet>
Merci de votre aide