XML et Mozilla

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
Lio

XML et Mozilla

Message 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
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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.
Lio

XML - Mozilla

Message 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
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message 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.
Lio

XML & Mozilla

Message par Lio »

Super, voilà ce qui me fallait !

Merci bcp !

Lio - httt://photolio.free.fr

:D
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Erreur dans l'adresse : http://photolio.free.fr/
Lio

Message 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:
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message 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 :?
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message 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;
                        }
                }
Lio

Message 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
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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
Dernière modification par Benoit le 12 mai 2004, 21:23, modifié 1 fois.
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message 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.
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20061204 SeaMonkey/1.5a
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

Message 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  :?: 
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

Message 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...
}
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités