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 :

générer un xml à partir d'un formulaire html


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Mars 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2017
    Messages : 12
    Points : 10
    Points
    10
    Par défaut générer un xml à partir d'un formulaire html
    Bonjour,
    j'ai un fichier xml avec des balises autofermante, d'autre ouvrante puis fermante, avec des attributs dedans etc.
    Je vais créer un formulaire en html qui permettra d'avoir les données qui viendront compléter le xml.

    ensuite via un bouton ça nou généreré le fichier xml sans avoir besoin d'internet, de php etc...

    j'ai trouvé une petite piste mais, je ne vois pas comment pouvoir renseigner les attributs des balises et, les valeurs à l'intérieur des balises. voilà ma piste : https://jsfiddle.net/jmusfs9v/3/ (le code n'est pas de moi)

    merci à tous de votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    OoW
    Inscrit en
    Juin 2019
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Ukraine

    Informations professionnelles :
    Activité : OoW

    Informations forums :
    Inscription : Juin 2019
    Messages : 139
    Points : 494
    Points
    494
    Par défaut
    \ô/
    j'ai trouvé une petite piste mais, je ne vois pas comment pouvoir renseigner les attributs des balises et, les valeurs à l'intérieur des balises.
    pourrais-tu préciser car visiblement on obtient bien ce que tu souhaites
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    <form>
      <element name="firstname" value="Prénom"></element>
      <element name="lastname" value="Nom"></element>
    </form>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Mars 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2017
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour Dave,
    En faite il faudrait que je puisse renseigner les attributs et également entre balise ouvrantes et fermantes.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 395
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 395
    Points : 15 756
    Points
    15 756
    Par défaut
    pour mettre le texte à l'intérieur d'une balise, vous pouvez utiliser ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    el.appendChild(document.createTextNode(inputs[i].value));
    regardez là pour d'autres exemples de codes :
    https://www.w3schools.com/js/js_htmldom_nodes.asp

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Mars 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2017
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci Matthieu cette piste est intéressante.
    Il va falloir que j'essaie d'articuler tout ça.
    Mes notions en JS étant limitées je vais aussi devoir monter en compétences sur le sujet. Je suis preneur de conseils ☺️

  6. #6
    Membre confirmé
    Homme Profil pro
    OoW
    Inscrit en
    Juin 2019
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Ukraine

    Informations professionnelles :
    Activité : OoW

    Informations forums :
    Inscription : Juin 2019
    Messages : 139
    Points : 494
    Points
    494
    Par défaut
    \ô/
    si je comprend bien tu veux récupérer ce format
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0"?>
    <form>
      <element>
        <name>firstname</name>
        <value>Prénom</value>
      </element>
      <element>
        <name>lastname</name>
        <value>Nom</value>
      </element>
    </form>
    Il n'est pas utile de créer un élément pour récupérer tes données, tu peux en faire directement la lecture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function convertToXml(form) {
      const indent = '  ';
      const champs = ['id', 'type', 'name', 'value']; // les champs à récupérer
      const xmldata = ['<?xml version="1.0"?>'];
      xmldata.push("<form>");
     
      const elements = form.querySelectorAll('input[name]');  // les éléments à traiter
      for (let elem of elements) {
        xmldata.push(indent + '<element>');
        champs.forEach((champ) => {
          d = elem.getAttribute(champ) || elem[champ] || 'undefined';
          xmldata.push(indent + indent + '<' + champ + '>' + d + '</' + champ + '>');
        })
        xmldata.push(indent + '</element>');
      }
      xmldata.push('</form>');
      return xmldata.join('\n');
    }

  7. #7
    Membre à l'essai
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Mars 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2017
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup Dave,
    Alors c'est ce que je veux faire mais en plus pouvoir aussi écrire les attributs ici "batch". les valeurs (kiki et batch) seront récupéré à partir des données du formulaire HTML.
    <name batch="168"> kiki </name>.
    Le fichier XML pourra être ensuite télécharger et nommé depuis la page HTML. C'est une utilisation en hors ligne.
    Si je ne suis pas clair je vais prendre le temps de faire un cahier des charges de tout ça tout à l'heure en rentrant.

    En gros je souhaite faire ceci : https://codepen.io/jon-walstedt/pen/AeeBXV
    mais, généré le fichier XML à la fin

    Encore merci

Discussions similaires

  1. [XSLT 2.0] HTML/XML : peut-on générer un xml à partir d'un formulaire html?
    Par kouack dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 28/01/2021, 19h34
  2. Remplir un fichier xml à partir d'un formulaire HTML
    Par karimoscapitated dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/05/2009, 11h08
  3. Générer un xml à partir d'un html
    Par nesrinebm dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 01/03/2009, 18h46
  4. [ezPDF] Générer du PDF à partir d'un formulaire HTML
    Par Shyboy dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/08/2006, 11h33
  5. générer un xml à partir d'un xml
    Par devlo dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 31/03/2006, 14h43

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