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 :

Copier le contenu d'un xml dans une string


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Copier le contenu d'un xml dans une string
    Bonjour,

    Je cherche à copier le contenu d'un fichier xml dans une string.

    J'ai pour cela essayé plusieurs choses comme :
    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
    19
    20
    21
    22
          function handleFileSelect(evt) {
            var files = evt.target.files; // FileList object
     
            // Loop through the FileList
            for (var i = 0, f; f = files[i]; i++) {
     
              var reader = new FileReader();
     
              // Closure to capture the file information.
              reader.onload = (function(f) {
                return function(e) {
                  // Print the contents of the file
                  var span = document.createElement('span');                    
                  span.innerHTML = ['<p>',e.target.result,'</p>'].join('');
                  document.getElementById('list').insertBefore(span, null);
                };
              })(f);
     
              // Read in the file
              reader.readAsText(f);
            }
          }
    Mais ce code interprète le xml et ne retourne que le contenu des balises.


    J'ai aussi essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var xmlText = new XMLSerializer().serializeToString(xmlfile);
    var xmlTextNode = document.createTextNode(xmlText);
    var parentDiv = document.getElementById('xmlContent');
    parentDiv.appendChild(xmlTextNode);
    Mais ce boût de code me renvoit l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 0 [nsIDOMSerializer.serializeToString]
    Bref, je bloque un peu... quelqu'un aurait il été confronté à ce problème ?
    EDIT: j'ai oublié de préciser que pour cela j'utilise le <input type="file".../> de HTML5. Si vous avez une autre solution existe et fonctionne je suis preneur

    Merci d'avance !
    Dernière modification par Invité ; 03/04/2013 à 12h09.

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    J'utilise ça pour parser du XML (mon XML est sous forme d'une string). Si ça peut aider ...
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try {
      // fluxXML est la chaine contenant le XML
      var docXML   =  new DOMParser().parseFromString(fluxXML, "text/xml")
     
      // Détection si parse error (ne génère pas d'exception sinon)
      if (docXML.getElementsByTagName('parsererror').length > 0)
        throw docXML.getElementsByTagName('parsererror')[0].textContent;
     
      console.log(docXML);
    } catch(ex) {
      console.log('Exception : ' + ex);
    }

    j'ai oublié de préciser que pour cela j'utilise le <input type="file".../> de HTML5
    Input file du HTML 5 ? tu veux parler de File Api ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour le code mais je n'en ai finalement pas eu besoin


    Input file du HTML 5 ? tu veux parler de File Api ?
    C'est bien ça. Qui prend la forme de (par exemple):
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" id="input_id" name="input_name[]" multiple />
    J'ai pas la mémoire des nom, juste celle des balises

    Bref, j'ai finalement réussi à faire ce que je veux (pas très dégourdi en ce moment... j'avais déjà la solution mais m'étonnait de pas voir les balises apparaitre dans le rendu de la page html... interprétée... )
    Je joins le code afin que d'autres puisses l'utiliser si ils rencontrent la même problématique (je vous ait même fait 3 lignes de commentaires et de javadoc :p)

    Code javascript : 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
    /** Store the content of a given XML file into a string
     * 
     * @pams file	XML file, use File API to get it
     */
    xml2String = function (file) {
    	var reader = new FileReader();
     
            // Closure to capture the file information.
    	reader.onload = (function(f) {
    		return function(evt) {
    			var xmlString = evt.target.result; // Store the content of the file into a string
    			/** DO YOUR PROCESSING HERE **/
    		};
    	})(file);
    	reader.readAsText(file); // Read the file, triggers reader.onload()
    };
    Dernière modification par Invité ; 04/04/2013 à 11h06.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Copier le contenu d'un contrôle dans une table
    Par alainb dans le forum IHM
    Réponses: 4
    Dernier message: 01/01/2010, 09h53
  2. Réponses: 1
    Dernier message: 22/06/2009, 12h09
  3. [Toutes versions] Copier le contenu d'un tableau dans une feuille de calcul
    Par Heureux-oli dans le forum Contribuez
    Réponses: 0
    Dernier message: 25/04/2009, 20h08
  4. Réponses: 3
    Dernier message: 26/04/2008, 17h58
  5. Copier le contenu d'un Edit dans une nouvelle Form
    Par breizh44 dans le forum Débuter
    Réponses: 16
    Dernier message: 20/02/2008, 22h54

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