IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Export xml client side


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Points : 67
    Points
    67
    Par défaut Export xml client side
    Bonjour,

    Dans une fonction, j'ai récupéré les élements dans une chaine de caractère (correspondant à la structure d'un fichier xml).

    Maintenant je bloque sur la méthode afin de générer le fichier xml côté client.

    Quels sont les méthodes possibles svp avec JS ?

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Salut,

    ta question est un peu trop vague.

    Citation Envoyé par Trady Voir le message
    Dans une fonction
    Quelle fonction ? Côté serveur ou client ?

    Citation Envoyé par Trady Voir le message
    j'ai récupéré les élements dans une chaine de caractère
    les éléments de quoi ?

    Citation Envoyé par Trady Voir le message
    Maintenant je bloque sur la méthode afin de générer le fichier xml côté client.

    Quels sont les méthodes possibles svp avec JS ?
    Avec JS, a priori tu n'as pas le droit de faire ça, car JavaScript n'est pas censé accéder au système de fichiers. Cela dit, il y a une astuce : passer par une data: URI. Vite fait, il s'agit de reprendre (ou construire) le code source de ton XML dans une chaîne JavaScript, et de rajouter au début "data:text/xml,". Ensuite, tu crées un lien avec cette data: dans le href, ou bien tu utilises window.open().

    Voici un exemple : http://jsfiddle.net/7fVzw/

    Mais si tu construis ton XML côté serveur, c'est bien plus simple de l'envoyer avec un en-tête Content-Type: text/xml (voir la fonction header si ton serveur utilise PHP), et éventuellement aussi un-tête Content-Disposition pour forcer l'enregistrement du fichier.

  3. #3
    Membre du Club
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Salut,

    Merci pour ta réponse.

    Quelle fonction ? Côté serveur ou client ?
    Un bouton sur un formulaire côté client.

    les éléments de quoi ?
    Les élements nécessaires pour un xml structuré avec les données nécessaires à récupérer du formulaire.
    J'ai cet exemple de chaine :

    <?xml version="1.0" encoding="utf-8"?><root><obj><Selection>Exemple1</Selection><test1>1.2</test1><test2>1.3</test2></obj>....

  4. #4
    Membre du Club
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    je viens de tester et c'est bien ce qu'il me fallait, encore merci.
    Par contre, comment récupérer les données dans le même fichier (écrasement des données précédentes) ?
    Car plusieurs fichiers sont créés à chaque clic.

    Voici le code utilisé pour le téléchargement du contenu de "uriContent" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var a = document.createElement('a');
    a.download = "test.xml";
    a.href = uriContent;
    document.body.appendChild(a);
    a.click();

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Les élements nécessaires pour un xml structuré avec les données nécessaires à récupérer du formulaire.


    C'est du chinois tout ça... Je n'ai aucune idée de quoi tu parles, du pourquoi du comment. Quel fichier ? C'est quoi uriContent ? Et qu'est-ce que tu essaies de faire exactement ???

    Il va falloir faire un effort pour être un peu plus intelligible si tu veux qu'on t'aide.

  6. #6
    Membre du Club
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Bon désolé, mais je ne vois pas trop ce que je peux préciser de plus (voir messages précédents).

    Grâce à l'astuce de Watilin avec l'URI, j'arrive à bien exporter le fichier xml côté client.
    Le seul problème maintenant c'est que ce sont plusieurs fichiers qui sont créés à chaque export, par exemple : test.xml ... test(1).xml... test(2).xml....

    alors que je voudrai que l'export de données ne se fasse que dans un seul fichier le test.xml

  7. #7
    Membre du Club
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    pour uriContent, je n'ai pas mis tout le détail du code concernant la façon de récupérer cette chaine de caractère puisque de toute façon ça c'est ok.

    Donc ma question porte juste sur le fait de pouvoir écraser ce fichier test.xml avec le nouvel export et de ne pas créer un nouveau fichier à chaque fois.

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    C'est pas tout bêtement ton OS qui renomme tes fichiers parce qu'il existe déjà un test.xml dans le répertoire de destination du téléchargement ?

  9. #9
    Membre du Club
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    oui, tout fichier téléchargé du même nom est automatiquement renommé.

    Il est possible de modifier ce paramétrage de l'OS pour un répertoire donné ?

  10. #10
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Non. Depuis le Web, tout ce qui touche à l'OS est intouchable (et heureusement).

  11. #11
    Membre du Club
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    oui, mais sur mon poste local comment puis-je changer cela afin de télécharger toujours ce fichier sous le même nom ?

  12. #12
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    chaque navigateur à sa propre façon de gérer les contenus.

    lorsque tu clique sur un lien le serveur envoie au navigateur um content-type
    celui-ci défini le type de contenu. le navigateur en fonction de ce content-type va exécuter une action.
    généralement si c'est du HTML il l'affiche mais si c'est autre chose c'est le navigateur qui a quelque part une marche à suivre en fonction du content-type.

    cela peut aller de l'afficher à l'enregistrer en passant par l'ouvrir dans une autre application ou exécuter un plugin

    généralement lorsque le navigateur ne connait pas le type il l'enregistre.
    là encore c'est le navigateur qui exécute la procédure d'enregistrement qui à été développé par le programmeur du navigateur.

    suivant les navigateurs soit il enregistre le fichier dans un dossier prédéfini soit il demande où l'enregistrer et sous quel nom.

    certains navigateurs sont paramètrables mais c'est l'utilisateur qui choisit àalors ce qu'il faut faire. en tanque developpeur web tu ne peux pas forcer l'utilisateur à faire autre chose que ce qu'il à décidé.

    certains navigateur sous windows en plus du content-type vont aussi regarder l'extension du nom de fichier.

    plutôt que d'utiliser text/xml qui est parfois simplement affiché par le navigateur tu peux utiliser application/xml qui lui est le plus souvent enregistré.
    mais cela ne changera pas le comportement de ton navigateur
    pour cela il te faut aller dans la conf de ton navigateur.

    A+JYT

  13. #13
    Membre du Club
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Merci pour les réponses.

    Oui le but n'est pas de forcer la configuration du navigateur côté client... c'est au client de configurer lui même son propre navigateur si il veut utiliser cette fonctionnalité ou non.

    Sinon j'aurai probablement dû commencer par çà dès le début de mon post, car je fais peut-être fausse route avec cette méthode, le but est de proposer au "visiteur" de récupérer certaines données affichées dans une page web, et les récupérer dans un fichier excel.

    Important: je précise que chaque nouvelle récupération doit écraser les données précédentes.

    C'est pourquoi, je comptais créer un fichier xml avec ces données.
    Ce fichier xml étant lié au fichier excel.

    Bonnes fêtes de fin d'année.

Discussions similaires

  1. [XSLT][OpenOffice] Problème filtre d'export XML
    Par Maximil ian dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 04/06/2011, 20h10
  2. [Mapping/Import/Export] XML et SGBDR ?
    Par Eric Lavanda dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 18/01/2006, 11h31
  3. Export XML
    Par Nip dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/11/2005, 13h49
  4. [STRUTS] Nested tags validation - Client side
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/07/2005, 13h21
  5. pb encodage lors export XML
    Par gemogof dans le forum ASP
    Réponses: 6
    Dernier message: 26/03/2005, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo