Forums : Les possiblités de la plateforme Mozilla

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Sauvegarder des données xml sous forme de fichier

Envoyé par : protee

Date : 02/01/2007 13:54

Bonjour, je suis en train d'essayer de porter en local une application qui traitait et modifiait des données XML en réseau (javascript/PHP).

En local (c'est à dire sans apache, php etc...) le problème est de pouvoir sauvegarder les données sur le disque dur local puisque javascript ne le permet pas. J'ai donc pensé à concevoir une extension Firefox en xul.

En vérité ça fonctionne sauf ce dernier point de sauvegarde. "saveDocument" réclame un document c'est à dire, me semble-t-il un document html classique.

Merci beaucoup.

# Re: Sauvegarder des données xml sous forme de fichier

Envoyé par : Raphael

Date : 02/01/2007 14:39

Comprends pas trop ce que tu dis, mais pour ma part :

  • Pour traiter des fichiers XML, j'utilise E4X, très pratique
  • Pour écrire un fichier XML, j'utilise un script donné sur mozillazine et qui est bien pratique : io.js qui concentre pas mal de fonctions utiles de lecture/écriture afin de ne pas avoir à réinventer la roue. Recherche sur le forum, j'avais fait un topic où tout est expliqué et où tu trouveras les liens nécessaires.

# Re: Sauvegarder des données xml sous forme de fichier

Envoyé par : protee

Date : 02/01/2007 19:05

Merci de ta réponse rapide qui m'a permis de m'instruire sans toutefois me donner la solution.

En fait j'ai une fenêtre qui contient un document classique:

w=window.open("chrome://exemple/content/teleme/index.html","fenetre");

saveDocument(w.content.document); sauve trés bien la page.

Mais à côté du document classique il y a un document xml nommé xmldoc, traçable par exemple par: alert(w.content.xmldoc.innerHTML);

Ce que je voudrais réaliser c'est l'équivalent de saveDocument(w.content.xmldoc) qui ne fonctionne pas. Bref sauver la composante xmldoc de ma fenêtre.

Il y a sûrement une solution mais pour l'instant je tourne en rond.

# Re: Sauvegarder des données xml sous forme de fichier

Envoyé par : Raphael

Date : 02/01/2007 21:49

Euh, suis pas sûr de bien comprendre mais voilà ce que je peux dire d'après ce que je comprends...

Tu as une variable de type XML ou Texte non ? Si c'est du XML, un petit coup de :

var serializer = new XMLSerializer();
data = serializer.serializeToString(dom);

dom est ton XML a priori.

Après, tu sauves grâce au fichier io.js dont je t'ai parlé de cette manière :

FileIO.write(file,data,'','utf-8');

file est un nsIFile que tu récupères par exemple d'un nsIFilePicker pour sélectionner une destination de sauvegarde et data est ta variable texte contenant ton fichier XML.

A priori, les réponses se trouvent vraiment sur le forum car il y a les liens vers XULPLanet et le MDC.

Bonne chance.

# Re: Sauvegarder des données xml sous forme de fichier

Envoyé par : protee

Date : 03/01/2007 12:56

ça y est, ça marche !

Non seulement j'ai résolu mon problème mais je me suis beaucoup instruit.

Un trés grand merci.

# Re: Sauvegarder des données xml sous forme de fichier

Envoyé par : Raphael

Date : 03/01/2007 13:09

De rien =)

Tu peux placer un petit Résolu devant ton titre peut-être, ça mange pas de pain et ça permet d'avoir une meilleure vision des topics.

# Re: Sauvegarder des données xml sous forme de fichier

Envoyé par : ligoz

Date : 04/09/2007 14:41

Chez moi (sous Windows) la ligne :

foStream.init(file,flags,0664,0);

du io.js retourne cette erreur :

Erreur : uncaught exception: [Exception... "Could not convert  
JavaScript argument"  nsresult: "0x80570009  
(NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: 
chrome://mesempreintes/content/io.js :: anonymous :: line 98"  data: 
no]

C'est le dernier paramètre de init qui est incorrecte, le dénommé : behaviorFlags: flags specifying various behaviors of the class (currently none supported)

Quelqu'un a t'il une idée ? Est-ce parce que je suis sous windows ?

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.