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

jQuery Discussion :

Fusionner les données de plusieurs fichiers XML


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 77
    Par défaut Fusionner les données de plusieurs fichiers XML
    Bonjour à tous,
    Je désire lors de la lecture de plusieurs fichiers xml ; qui ont la même structure; de récupérer ces données et de les afficher .
    Mais je n'arrive pas à les fusionner avec l'incrementation, merge et push.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
     var files = ['file.xml','file2.xml']   // 2 fichiers xml
     var xmlResult;
     var temp ={};  
     $.each(files, function(index,value) 
    {
       $.ajax({
    	 url: value,
    	 dataType: "xml",
    	 cache: true,
    	 async: false, 						  success: function(xmlResponse)
      {
     
    	data = $( "desc", xmlResponse ).map(function() 
    	{
    									  return {
    										label: $( "label", this ).text(),
    		lien: $( "lien", this ).text()
    		};
    	}).get();			
    									  temp += data;                           
    	  //temp.push(data);                      // ne marche pas
    	  //temp = $.merge(temp,data )       // ne marche pas
    	  console.dir(temp); 
          if (index == files.length-1) 
          {
    	xmlResult += temp; 
    	//xmlResult = $.merge(temp,data )    // ne marche pas non plus
                temp = null;
              console.dir(temp); 
            }
        }
      });
     });
    Merci

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Je viens de tester avec un fichier XML :

    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
    23
    <?xml version="1.0" encoding="UTF-8" ?>
    <data>
    	<block >
    		<class>one</class>
    		<titre>Titre</titre>
    		<image path="images/image1.jpg"></image>
    		<image path="images/image2.jpg"></image>
    		<image path="images/image3.jpg"></image>
    		<description>
    		Une super description
    		</description>
    		<bgcolor>#de052d</bgcolor>
    	</block>
    	<block >
    		<class>two</class>
    		<titre>Titre2</titre>
    		<image path="images/imagetwo.jpg"></image>
    		<description>
    		Une super description2
    		</description>
    		<bgcolor>#de052d</bgcolor>
    	</block>
    </data>
    Cela fonctionne très bien à condition de ne pas se mélanger entre array et object.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
    	<meta charset="utf-8">
    	<meta name="viewport" content="initial-scale=1.0">
    	<meta name="author" content="Daniel Hagnoul">
    	<title>Forum jQuery</title>
    	<script src="http://cdnjs.cloudflare.com/ajax/libs/headjs/0.99/head.min.js"></script>
    	<script>
    		"use strict";
     
    		head.js( 
    			"http://d3js.org/d3.v3.min.js",
    			"http://code.jquery.com/jquery-2.0.3.min.js",
    			"http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/i18n/jquery-ui-i18n.min.js",
    			"http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js",
    			"http://danielhagnoul.developpez.com/lib/dvjh/d3Base.js", function(){
     
    $( function(){
     
    	var files = [ '../effaceXml.xml', '../effaceXml.xml' ],
    		data = [],
    		xmlResult = [];
     
    	$.each( files, function( index, value ){
    		$.ajax({
    			"url" : value,
    			"dataType" : "xml",
    			"cache" : true,
    			"async" : false,
    			"success" : function( objJS ){
     
    			 	data = $( "block", objJS ).map( function(){
    			 		return {
    			 			"label" : $( "class", this ).text(),
    			 			"lien" : $( "titre", this ).text()
    					};
    				}).get();
     
    				xmlResult = $.merge( xmlResult, data );
     
    				console.log( xmlResult );
    		    }
    		});
    	});
     
    });
     
    $( window ).load( function(){
     
    });
     
    		});
    	</script>
    	<link href='http://fonts.googleapis.com/css?family=Sofia|Ubuntu:400|Kreon'>
    	<link rel="stylesheet" href="http://danielhagnoul.developpez.com/styles/dvjhRemBase.css">
    	<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/sunny/jquery-ui.min.css">
    	<style>
    		/* TEST -- Nota bene : ici 1 rem est égal à 1 px, voir dvjhRemBase.css */
     
     
    	</style>
    </head>
    <body>
    	<header>
    		<hgroup>
    			<h1>Forum jQuery</h1>
    			<h2>
    				<a href="">Lien</a>
    			</h2>
    		</hgroup>
    	</header>
    	<section class="conteneur">
     
     
    	</section>
    	<footer itemscope itemtype="http://danielhagnoul.developpez.com/">
    		<time datetime="2013-08-22T10:03:02.849+02:00" pubdate>2013-08-22T10:03:02.849+02:00</time>
    		<span itemprop="name">Daniel Hagnoul</span>
    		<a href="http://www.developpez.net/forums/u285162/danielhagnoul/" itemprop="url">@danielhagnoul</a>
    		<a href="http://danielhagnoul.developpez.com/" itemprop="url">Mon cahier d’exercices</a>
    		<a href="http://javascript.developpez.com/faq/jquery/" itemprop="url">FAQ</a>
    		<a href="http://javascript.developpez.com/cours/?page=frameworks#jquery" itemprop="url">Tutoriels</a>
    	</footer>
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 77
    Par défaut
    Merc cela marche.
    évidement entre array et object

    [maj ] je vais copmment pour mettre ce sujet en résolu

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    En cliquant sur le bouton
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 77
    Par défaut
    Oui j'avais lu la régle mais je ne trouvais pas ce bouton , bigre

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

Discussions similaires

  1. Intégrer les données de plusieurs fichiers dans une table
    Par soad029 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2007, 03h57
  2. [XSLT] comment afficher toutes les données d'un fichier xml ?
    Par bwwilly dans le forum XSL/XSLT/XPATH
    Réponses: 19
    Dernier message: 27/06/2007, 16h21
  3. [XSLT] Inclure les données d'un fichier XML dans un fichier
    Par SimOOn dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/04/2007, 16h26
  4. [DOM XML] Transfomer en variables les données d'un fichier xml
    Par rozdiwel dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 02/10/2006, 18h46
  5. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39

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