Page 1 sur 1

XML et Mozilla

Publié : 22 avr. 2004, 09:24
par Lio
Saluuuut,

Je suis en train de développer une application "client" utilisable avec un navigateur. Mes données sont stockées en XML.

Sous IE, je n'ai pas de pb pour charger le document XML sous forme d'arbre DOM . Cela se fait avec un ActiveX (désolé pour cet affront sur ce forum... :roll: )

Comme j'aimerais être un peu plus universel, j'aimerais trouver l'équivalent pour d'autres navigateurs... Pour ce qui nous concerne j'aimerais savoir comment obtenir une instance DOM d'un fichier XML au sein de Mozilla (via javascript).

Merci d'avance, Lio

Publié : 22 avr. 2004, 09:41
par Benoit
Je pense que ceci te sera utile :
http://www.webreference.com/programming ... index.html

Sinon, n'oublie pas que yu peux afficher directement ton document XML en lui ajoutant une feuille de style, soit CSS si la structure est déjà bonne, soit XSL si tu dois faire une transformation supplémentaire.

XML - Mozilla

Publié : 22 avr. 2004, 15:10
par Lio
Je te remercie du lien.
Effectivement, je peux faire de la présentation via une XSL.
C'est ce que je fais, mais pour modifier le document XML, je n'ai pas vraiment le choix !

Lio

Publié : 22 avr. 2004, 15:22
par Xanthor
La classe DOMParser est faite pour ça : elle permet de retourner un document XML que tu peux manipuler en DOM comme tu veux.

XML & Mozilla

Publié : 22 avr. 2004, 19:25
par Lio
Super, voilà ce qui me fallait !

Merci bcp !

Lio - httt://photolio.free.fr

:D

Publié : 23 avr. 2004, 12:38
par calimo
Erreur dans l'adresse : http://photolio.free.fr/

Publié : 23 avr. 2004, 16:45
par Lio
Vi vi vi !!!
:wink:

Si on avait un nouveau protocole HTTT, ça se saurait....

Sinon, après approfondissement des liens fournis en réponse à ma question, je dois avouer que finalement cela ne me fait pas bcp avancer...

L'instanciation d'un ActiveX avec IE et sous WINDAUBE reste-t-elle une fatalité ???

Lio

:cry: :cry: :cry: :cry:

Publié : 23 avr. 2004, 17:32
par calimo
Ce serait une fatalité en effet :( , mais pas une solution :wink:

Tu ne pourrait pas faire ça avec du PHP qui prend tes données XML et qui en les insère dans le fichier HTML envoyé ? Ou sinon tu utilise une bas de données MySQL.
Je viens de regarder ça avec IE, je vois pas trop où l'ActiveX est utile :?

Publié : 23 avr. 2004, 17:45
par Xanthor
Lio a écrit :Sinon, après approfondissement des liens fournis en réponse à ma question, je dois avouer que finalement cela ne me fait pas bcp avancer...
Qu'est-ce qui te bloque ?
Voici par exemple un bout de code que j'utilise pour récuperer un fichier XML et l'analyser après une requete POST :

Code : Tout sélectionner

post.send(data);
        var r=post.responseText;
        var parseur=new DOMParser();
        rxml=parseur.parseFromString (r,'application/xml');
        if(rxml.getElementsByTagName('result').length && rxml.getElementsByTagName('result')[0].firstChild.nodeValue>0)
                {
                return true;
                }
        else
                {
                if(window.confirm('Attention, il y a des erreurs dans cette page.\nVoulez-vous cependant continuer ?'))
                        {
                        return true;
                        }
                else
                        {
                        event.preventDefault();
                        return false;
                        }
                }

Publié : 23 avr. 2004, 22:45
par Lio
Hughhh !

Mon projet consiste à faire une appli AUTONOME, purement Client-Side qui se suffit à elle même et qui tourne sur le plus de plate-forme possible.

Ainsi, pour la solution PHP/MySQL... Elle existe depuis longtemps. Mais ce n'est pas "autosuffisant". Je veux dire par là que je dois pouvoir donner mon appli à qq1 qui n'y connait rien sans qu'elle ait à installer EASYPHP ou autre archi basée sur un serveur Web.

Le seul prérequis doit être un navigateur comprenant le XML, DOM et javascript.

Sinon, l'ActiveX sert à obtenir une instance du fichier XML en mémoire :

// Creation de l'arbre DOM avec MS IE6.0
var xml_doc = new ActiveXObject("Microsoft.XMLDOM");
xml_doc.async = false;
xml_doc.load(nomFichier);
(...)

var nTitre = xml_doc.getElementsByTagName("compte");
(...)

(en javascript of course)

Je cherche l'équivalent de ça... mais pour d'autres navigateurs que IE sous WIN.

Vàla :wink:

Lio - http://photolio.free.fr

Publié : 24 avr. 2004, 09:06
par Benoit
Ben c'est sur le site que je t'ai donné, par exemple :

Code : Tout sélectionner

var xml_doc = new ActiveXObject("Microsoft.XMLDOM");
devient

Code : Tout sélectionner

var xml_doc = document.implementation.createDocument("", "", null);
Les autres commandes que tu as données sont identiques (async, load).

Tu peux soit lire le tutoriel et recopier ce dont tu as besoin (il y a 5 pages), soit utiliser la bibliothèque complète (pour un usage non commercial, mais c'est pas bien compliqué à réécrire sinon) : nczXMLDOMWrapper.js

Publié : 24 avr. 2004, 23:31
par Xanthor
Lio a écrit :Je cherche l'équivalent de ça... mais pour d'autres navigateurs que IE sous WIN.
Relis mon code, c'est exactement ce que je fais.

Publié : 07 mai 2004, 19:44
par pcdingo
Bonjour,
Ba moi j'ai un peu le même pb et malgres ces liens + d'autres que j'ai trouvé impossible de faire fonctionner mon code :(
En fait c'est pour une appli Xul, mais vu que en tant que telle je ne vois pas de message d'erreur, j'ai testé avec une page html et j'ai toujours l'erreur suivante :
companies[0] has no properties :(

Pour le code suivant

Code : Tout sélectionner

var xmlDoc = document.implementation.createDocument("","", null);
xmlDoc.load("sample.xml");
var companies=xmlDoc.getElementsByTagName("company");
var employees=companies[0].getElementsByTagName("employee")[0].firstChild.data;

J'ai essayé pas mal de choses et rien à faire :( pourtant c'est le genre de code qui est indiqué sur plein de sites , donc je ne comprends pas ce que j'ai raté dans tout ca  :?: 

Publié : 07 mai 2004, 22:06
par pcdingo
Finallement j'ai trouvé la réponse tout seul ;)
C'est un pb temporel en fait , le xml n'a pas encore fini de se charger alors que je l'exploite. Pour ceux que ça intéresse il faut rajouter le code suivant après le chargement :
xmlDoc.onload=function(){lecture(xmlDoc);}

function lecture{
code...
}

Publié : 12 mai 2004, 21:21
par Benoit
Il y a maintenant un article sur ZDNet sur le sujet avec diverses techniques et des exemples : http://www.zdnet.fr/builder/programmati ... 226,00.htm

(source: StandBlog)