var Document;
Document = new ActiveXObject("Microsoft.XMLDOM");
Document.async = "false";
if(Document.load("../../../BdDXML/2007/MEEAB94B_2007.xml")){
document.write("\");
document.write(' Liens |');
document.write('<col bgcolor =\"73c1de\">');
for(i=0;i<Document.documentElement.childNodes.length;i++){
document.write (\"----
\");
for(j=0;j<= 0;j++){
document.write (\"");
document.write (Document.documentElement.childNodes(i).childNodes(j).text);
document.write (", \");
}
document.write (\"\");
}
document.write ("
");
}else{alert("Le fichier 'MEEAB94B_2007.xml' n'a pas été trouvé!");
}
}
Je n'affiche dans le tableaux uniquement la balise <liens>.
(Entre-nous je peux exécuter le script avec Firefox grâce au module IE Tab).
Ma question:
Je voudrais faire en sorte que le texte 'Téléchargement' entre les balises <liens> du XML puisse être cliquable et se référer à un fichier externe (mp3 par exemple).
Comment puis-je faire cela?
jpclutier
Messages postés23Date d'inscriptionlundi 13 novembre 2006StatutMembreDernière intervention 6 mars 2009 4 juil. 2008 à 13:48
Oui bien..mais ne fonctionne pas sous FireFox à cause de l'ActiveX. En tout cas pas depuis la v2 (avant il existe des add-ons).
Si quelqu'un à le même bout de code tout prêt pour FF je prends !
mehdikobra
Messages postés24Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention21 décembre 2009 24 juin 2008 à 12:20
c'amarche trés bien
rien dire !! merci
bubuze
Messages postés31Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention25 avril 2006 7 nov. 2007 à 23:37
firefox est aussi utilisable, via la librairie sarissa, disponible sur sourceforge.
cs_fly49
Messages postés4Date d'inscriptionlundi 20 janvier 2003StatutMembreDernière intervention28 novembre 2011 7 nov. 2007 à 15:54
les variables ne sont pas bonnes c'est juste une idée
cs_fly49
Messages postés4Date d'inscriptionlundi 20 janvier 2003StatutMembreDernière intervention28 novembre 2011 7 nov. 2007 à 15:52
le but de ce script n'est pas de le faire fonctionner en .ap ou en .php ou autre, mais en javascript (le langage client de l'avenir) le broser client bosse et pas le serveur.
Il est très bien mais il faut trouver la solution pour le faire marchr sur FireFox
j'ai des pistes mais ca marche pas:
if (window.ActiveXObject)
{
xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("catalogue.xml");
envoyerfonctiosuivantequifaitletableau()
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.load("catalogue.xml");
envoyerfonctiosuivantequifaitletableau()}
else
{
alert('Your browser cannot handle this script');
}
}
envoyerfonctiosuivantequifaitletableau(){
document.write("\");
document.write(\" ID |Date |Nom |\");
for(i =0;i<Document.documentElement.childNodes.length;i++){
document.write (\"----
\");
for(j=0;j<= 2;j++){
document.write (\"");
document.write (Document.documentElement.childNodes(i).childNodes(j).text);
document.write (", \");
}
document.write (\"\");
}
document.write ("
");
}else{alert("fichier pas trouvé !");// si pas de fichier, alerte !
}
}
pifou25
Messages postés144Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention21 décembre 2014 20 juin 2007 à 17:34
Bonjour,
pour l'instant j'en suis encore à essayer de convertir ce code en ASP (au moins ça sera exécuté coté serveur et ça marchera sous tout navigateur). Mais la manière la plus autonome serait de passer le nom du fichier en argument - AfficheDocXML("carnet.xml") - puis de parcourir le 1er élément pour copier les noms des éléments et leur nombre, qui constitueront l'entête du tableau HTML.
Puisque ici la fonction est limitée à 3 colonnes figées (Id, date, nom). Tant qu'à faire une fonction autant la faire compatible ^^
glork
Messages postés29Date d'inscriptionmardi 26 avril 2005StatutMembreDernière intervention17 février 2006 29 nov. 2005 à 00:43
bof... ca marche pas sous firefox
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 26 nov. 2005 à 12:47
Oui je viens de terminer un parser en php qui fonctionne super bien, mais ça coince avec les gros fichiers arff .... Merci pour ta réponse !!!
bubuze
Messages postés31Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention25 avril 2006 26 nov. 2005 à 11:09
si tu produits un xml classique, tu peux toujours l'afficher dans le navigateur (au fait sarissa a pour but de xslt-iser le xml sur tous les navigateurs) puis l'enregistrer "à l'ancienne".
ça ne résoud pas le problème des gros fichiers : j'ai souvenir d'un fil de discussion à ce sujet sur xml-fr.org.
d'autres solutions existent pour automatiser le processus de sauvegarde (php par exemple)
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 25 nov. 2005 à 17:41
Bon peut-être, mais ce qui est certain c'est que le xml avec attribut c'est plus léger bref.
Par contre je ne suis pas certain qu'on puisse enregistrer en dur et en local le fichier XML résltant, de plus le principal inconvéniant avec cette techno XSLT c'est qu'on ne peut pas travailler sur des fichiers de grosses capacité. J'ai fait l'essai ça bloque sur un fichier de 13Mo. Je sais c'est énorme, mais je n'ai pas le choix pour x raisons, je dois utiliser des fichiers XML de grosses capacités d'où l'intéret de parser en attribut, on constate un temps de chargement notoirement diminué.
Merci pour vos messages les Amis codeurs ....
bubuze
Messages postés31Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention25 avril 2006 25 nov. 2005 à 16:45
> Si un codeur C++ ou Delphi pouvait offrir une source permettant en 1 clic de réaliser cette transformation des noeuds enfants en attributs des noeuds parents, ce serait un réel outil en local !!!
inutile d'aller parser avec du C ou du delphi, tu peux très bien fabriquer ta propre transformation xslt qui "compressera" ton xml.
bubuze
Messages postés31Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention25 avril 2006 25 nov. 2005 à 16:41
je pratique le xml transformé par xslt en html via le javascript,
après le temps initial de chargement (relativement) long, la navigation est instantanée !
bien sûr, cela n'est appliquable qu'à des sites petits ou moyens, mais le résultat est bluffant.
techniquement, javascript est indispensable (à ma connaissance), mais firefox est aussi utilisable, via la librairie sarissa, disponible sur sourceforge.
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 25 nov. 2005 à 10:39
Oui il faut que le navigateur sache faire appel au parseur XML de la dom du pc pour que cela fonctionne. Il faut aussi qu'il sache interprèter les fonctions javascript.
Sur certain navaigateurs, c'est désactivé par défaut (!).
Neopheus
Messages postés21Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention25 novembre 2005 25 nov. 2005 à 07:48
31 oct. 2010 à 19:27
En utilisant le script posté par Loubiou j'ai:
Pour le fichier XML (MEEAB94B_2007.xml):
<?xml version= "1.0" encoding="UTF-8" standalone="yes"?>
<messages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<mxx>
<liens>Téléchargement</liens>
2007
<mois>Mai</mois>
<jour>27</jour>
</mxx>
<mxx>
<liens>Téléchargement</liens>
2007
<mois>Juin</mois>
<jour>3</jour>
</mxx>
</messages>
(Je peux le mettre à jour directement via Excel)
Pour le fichier JS (TabdataB2007.js):
AfficheDocXML();
function AfficheDocXML(){
var Document;
Document = new ActiveXObject("Microsoft.XMLDOM");
Document.async = "false";
if(Document.load("../../../BdDXML/2007/MEEAB94B_2007.xml")){
document.write("\");
document.write(' Liens |');
document.write('<col bgcolor =\"73c1de\">');
for(i=0;i<Document.documentElement.childNodes.length;i++){
document.write (\"----
\");
for(j=0;j<= 0;j++){
document.write (\"");
document.write (Document.documentElement.childNodes(i).childNodes(j).text);
document.write (", \");
}
document.write (\"\");
}
document.write ("
");
}else{alert("Le fichier 'MEEAB94B_2007.xml' n'a pas été trouvé!");
}
}
Je n'affiche dans le tableaux uniquement la balise <liens>.
(Entre-nous je peux exécuter le script avec Firefox grâce au module IE Tab).
Ma question:
Je voudrais faire en sorte que le texte 'Téléchargement' entre les balises <liens> du XML puisse être cliquable et se référer à un fichier externe (mp3 par exemple).
Comment puis-je faire cela?
4 juil. 2008 à 13:48
Si quelqu'un à le même bout de code tout prêt pour FF je prends !
24 juin 2008 à 12:20
rien dire !! merci
7 nov. 2007 à 23:37
http://sourceforge.net/projects/sarissa
7 nov. 2007 à 15:54
7 nov. 2007 à 15:52
Il est très bien mais il faut trouver la solution pour le faire marchr sur FireFox
j'ai des pistes mais ca marche pas:
if (window.ActiveXObject)
{
xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("catalogue.xml");
envoyerfonctiosuivantequifaitletableau()
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.load("catalogue.xml");
envoyerfonctiosuivantequifaitletableau()}
else
{
alert('Your browser cannot handle this script');
}
}
envoyerfonctiosuivantequifaitletableau(){
document.write("\");
document.write(\" ID |Date |Nom |\");
for(i =0;i<Document.documentElement.childNodes.length;i++){
document.write (\"----
\");
for(j=0;j<= 2;j++){
document.write (\"");
document.write (Document.documentElement.childNodes(i).childNodes(j).text);
document.write (", \");
}
document.write (\"\");
}
document.write ("
");
}else{alert("fichier pas trouvé !");// si pas de fichier, alerte !
}
}
20 juin 2007 à 17:34
pour l'instant j'en suis encore à essayer de convertir ce code en ASP (au moins ça sera exécuté coté serveur et ça marchera sous tout navigateur). Mais la manière la plus autonome serait de passer le nom du fichier en argument - AfficheDocXML("carnet.xml") - puis de parcourir le 1er élément pour copier les noms des éléments et leur nombre, qui constitueront l'entête du tableau HTML.
Puisque ici la fonction est limitée à 3 colonnes figées (Id, date, nom). Tant qu'à faire une fonction autant la faire compatible ^^
29 nov. 2005 à 00:43
26 nov. 2005 à 12:47
26 nov. 2005 à 11:09
ça ne résoud pas le problème des gros fichiers : j'ai souvenir d'un fil de discussion à ce sujet sur xml-fr.org.
d'autres solutions existent pour automatiser le processus de sauvegarde (php par exemple)
25 nov. 2005 à 17:41
Par contre je ne suis pas certain qu'on puisse enregistrer en dur et en local le fichier XML résltant, de plus le principal inconvéniant avec cette techno XSLT c'est qu'on ne peut pas travailler sur des fichiers de grosses capacité. J'ai fait l'essai ça bloque sur un fichier de 13Mo. Je sais c'est énorme, mais je n'ai pas le choix pour x raisons, je dois utiliser des fichiers XML de grosses capacités d'où l'intéret de parser en attribut, on constate un temps de chargement notoirement diminué.
Merci pour vos messages les Amis codeurs ....
25 nov. 2005 à 16:45
inutile d'aller parser avec du C ou du delphi, tu peux très bien fabriquer ta propre transformation xslt qui "compressera" ton xml.
25 nov. 2005 à 16:41
après le temps initial de chargement (relativement) long, la navigation est instantanée !
bien sûr, cela n'est appliquable qu'à des sites petits ou moyens, mais le résultat est bluffant.
techniquement, javascript est indispensable (à ma connaissance), mais firefox est aussi utilisable, via la librairie sarissa, disponible sur sourceforge.
un exemple de ce que ça donne : http://bubuze.chez-alice.fr/_flume/album.htm
25 nov. 2005 à 10:39
Sur certain navaigateurs, c'est désactivé par défaut (!).
25 nov. 2005 à 07:48
Pas sur Opera...