Problème javascript - XML

Signaler
Messages postés
38
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
20 août 2009
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour,

j'ai un souci avec pour faire du xml dynamique avec javascript et j'aurais besoin d'aide.
En fait, j'ai code associant xml, xslt et javascript (avec innerHTML pour écrire dans des div) et ça marche très bien coté client, pour l'instant ça ne fait que des lectures des fichiers xml.
Mais maintenant, je voudrais l'exploiter coté serveur (tomcat) puisque je dois écrire dans les fichiers xml avec jdom. Et quand je commence à mettre mes codes sous tomcat, sans jdom encore, et que je teste, on dirait que ça bloque au niveau des innerHTML puisque les div restent vide.
Quelqu'un a-t-il une idée pourquoi ça ne s'affiche pas? faut-il un .jar à rajouter ou quelque chose de ce genre? ou est-ce que c'est tout simplement impossible et pourquoi?

Juste pour donner un apperçu du code:

var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");

xslDoc.async = false;

xslDoc.load("fichier.xsl");
xmlDoc.validateOnParse = false;

xmlDoc.load("fichier.xml");

var xslt = new ActiveXObject("Msxml2.XSLTemplate");
xslt.stylesheet = xslDoc;
var xslProc = xslt.createProcessor();
xslProc.input = xmlDoc;

xslProc.transform();
nomDiv.innerHTML = xslProc.output;
(nomDiv: nom du div en question)

Merci d'avance pour votre aide

11 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
Bonjour,

c'est quoi tomcat ?
et si ça fonctionne 'en local', pourquoi ajouter ce 'tomcat' sur le serveur ?

les "procdures" sont les mêmes,

sauf peut-être les temps de réponses ? il faut gérer ce chargement
soit en synchrone, soit en asynchrone et là tester quand la réponse arrive.

xmlDoc.async=true;    // pour asynchrone par exemple
xmlDoc.onreadystatechange = function ()
{    if ( xmlDoc.readyState == 4 )
     {    traitement de xmlDoc,xmlD.xml;    }
}

sinon pour "gérer derrière le load", mettre .async=false;
( je ne sais pas quelle est la valeur par défaut ! )

par contre ce que tu fais doit être exclusif IE... pour l'instant.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
tant qu'à tomcat, qui, si je lis bien, est un "serveur d'applications Java"
je ne vois pas le rapport directement avec la question xml+xsl+javascript,
mais bon, ignorant presque tout de java.....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
38
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
20 août 2009

tomcat en deux c'est un serveur java, en effet. Et je veux passer sur tomcat parce que je dois utiliser jdom et java pour faire des écritures sur mes fichiers xml.




J'ai essayé le code que t'as mis mais ça change. C'est comme s'il ne rentre pas du tout dans la partie traitement, parce que qaund je mets un mot dans le div où il doit rajouter le texte avec avec innerHTML comme suit:






yes <script> traitement(); </script>

alors il affiche le "yes", mais rein de plus.

Et pareil si je mets dans le traitement:
nfig.innerHTML = "ici";
 ça, il l'affiche également
je suis un peu perdue...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
et tu fais quoi dans traitement ?
ton souci n'est pas sur l'affichage dans le div,
mais dans le traitement du fichier xml.

d'ailleurs on n'affiche pas le résultat du xml !
ça servirait à quoi ? on l'exploite

du style :
for ( var n=0; n < xmlD.getElementsByTagName("balises du xml").length; n++ )...
et xmlD.getElementsByTagName("balises")[n].firstChild.nodeValue... par exemple
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
avec IE, pour "afficher" tout : xmlD.xml
plus en tête avec.    mais pas d'intérêts !
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
38
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
20 août 2009

Merci déjà pour toutes tes réponses bultez
je suis d'accord, le problème doit venir du traitement du xml. Et j'aimerais savoir quoi exactement puisque rapelons que en dehors de tomcat l'application/le code marche très bien.
Je me demande donc si tomcat est plus sensible par exemple et qu'il faut écrire le code autrement, ou s'il faut rajouter un .jar, ou autre chose
(Sinon je me permets de demander que si je travaille pas sous tomcat, quel autre moyen pour écrire dans du xml? je veux bien essayer)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
je n'ose affirmer quoi que ce soit,
mais je ne vois pas ce que tomcat viendrait faire dans cette pure (?) histoire de javascript / xml
mais... je ne connais pas du tout.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
38
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
20 août 2009

Parce qu'en fait, je pense qu'on ne peut pas écrire dans un fichier xml avec du javascript tout court. Il faut par exemple du php ou java en plus
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
ah ! écrire ! ce n'est plus la même chose !
avec IE, il faut un .hta ou un .htas à la place de .htm,
ce ne doit pas être permis avec les autres navigateurs,
donc oui, langage serveur nécessaire.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
38
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
20 août 2009

Enfin de compte c'est même pas la fonction de traitement qui allait pas, c'est dans le fichier xsl lui-même. Comme je le pensais, on dirait que tomcat est plus sensibke, exigeant ou pas trop, mais dans le xsl, au lieu de:





<xsl:value-of select="document('../fichier.xml')






j'ai fait pour tester:



<xsl:value-of select="document('..//fichier.xml')

et je ne sais pas pourquoi mais ça marche, CA M'AFFICHE TOUTE MA PAGE !  Il me reste le code pour écrire dans le xml maitenant , mais au moins ça c'est réglé.


Merci toujours pour tes réponses bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
nickel si ça baigne.       curieux le double /, mais bon...
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]