Bonjour!
Je travaille depuis quelques temps sur la mise en forme d'une feuille XML par le biais d'une feuille XSL.
Pour se faire j'utilise un script en JavaScript qui marche parfaitement sur tout les naviguateur. Tout fonctionne correctement! "Mais où est le problème!?" me direz vous...
Et bien le problème est que j'utilise pour trier mes colonnes de manière automatique un script en JS Open-Source que vous pourrez trouver à l'adresse suivante : http://www.kryogenix.org/code/browser/sorttable
Ce script et magnifiquement fait et bien que n'ayant rien compris au source il est très simple d'utilisation. Il suffit d'attribuer au tableau la class "sortable" et toutes les colonnes se trient automatiquement par un clique simple sur l'en-tête de la colonne. Ce script fonctionne parfaitement sur IE mais ne marche plus sur les autres navigateurs. Après de très nombreux tests je pense que cela vient du fait que le code source du tableau même n'apparait pas en clair dans l'exploreur mais semble être stocké dans la mémoire du PC client. J'utilise appendChild() pour intégrer mon tableau à ma page xHTML, les autres techniques de marchant pas.. je vous copie mon fichier JS.
Un aperçut du rendu : http://team-xgz.perso.sfr.fr/Test/index.php (essayez IE et FF pour voir la différence)
Quelqu'un aurait une idée sur la manière de pouvoir copier mon tableau en dure dans mon fichier xHTML? Ou au pire une modification de mon script d'intégration XSL/XML qui permettrait de faire marcher le tri automatique.
Merci d'avance pour votre patience et votre temps.
Très cordialement,
Freezystem
Modifié par freezystem (30 Nov 2009 - 10:42)
Je travaille depuis quelques temps sur la mise en forme d'une feuille XML par le biais d'une feuille XSL.
Pour se faire j'utilise un script en JavaScript qui marche parfaitement sur tout les naviguateur. Tout fonctionne correctement! "Mais où est le problème!?" me direz vous...
Et bien le problème est que j'utilise pour trier mes colonnes de manière automatique un script en JS Open-Source que vous pourrez trouver à l'adresse suivante : http://www.kryogenix.org/code/browser/sorttable
Ce script et magnifiquement fait et bien que n'ayant rien compris au source il est très simple d'utilisation. Il suffit d'attribuer au tableau la class "sortable" et toutes les colonnes se trient automatiquement par un clique simple sur l'en-tête de la colonne. Ce script fonctionne parfaitement sur IE mais ne marche plus sur les autres navigateurs. Après de très nombreux tests je pense que cela vient du fait que le code source du tableau même n'apparait pas en clair dans l'exploreur mais semble être stocké dans la mémoire du PC client. J'utilise appendChild() pour intégrer mon tableau à ma page xHTML, les autres techniques de marchant pas.. je vous copie mon fichier JS.
function loadXML(url)
{
var xmlDoc;
try
{
xmlDoc = new ActiveXObject('Msxml2.XMLDOM');
}catch (errorie1)
{
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
}
xmlDoc.async = false;
xmlDoc.load(url);
return xmlDoc;
}
function displayXSL()
{
var xmlURL = './new_cluster1.xml';
var xslURL = './new_cluster.xsl';
/*Mozilla Firefox*/
if (window.XSLTProcessor)
{
try
{
var xslStylesheet;
var xsltProcessor = new XSLTProcessor();
// charge le fichier xslt, new_cluster.xsl
var myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", xslURL, false);
myXMLHTTPRequest.send(null);
// récupère le document XSL et l'importe
xslStylesheet = myXMLHTTPRequest.responseXML;
xsltProcessor.importStylesheet(xslStylesheet);
// charge le fichier XML, new_cluster.xml
myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", xmlURL, false);
myXMLHTTPRequest.send(null);
var xmlSource = myXMLHTTPRequest.responseXML;
var target = document.getElementById("transform");
var resultDocument = xsltProcessor.transformToFragment(xmlSource,document);
target.appendChild(resultDocument);
//target.innerHTML=resultDocument; //ne fonctionne pas correctement
//target.write(resultDocument); //ne marche pas tout simplement
}catch (errorfirefox)
{
alert(errorfirefox);
}
}
/*Internet Explorer*/
else if (window.ActiveXObject)
{
var xml = loadXML(xmlURL);
var xsl = loadXML(xslURL);
try
{
var target = document.getElementById("transform");
target.innerHTML = xml.transformNode(xsl);
}catch (errorie2)
{
alert(errorie2);
}
}
}
Un aperçut du rendu : http://team-xgz.perso.sfr.fr/Test/index.php (essayez IE et FF pour voir la différence)
Quelqu'un aurait une idée sur la manière de pouvoir copier mon tableau en dure dans mon fichier xHTML? Ou au pire une modification de mon script d'intégration XSL/XML qui permettrait de faire marcher le tri automatique.
Merci d'avance pour votre patience et votre temps.
Très cordialement,
Freezystem
Modifié par freezystem (30 Nov 2009 - 10:42)