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 :

Alimenter un tableau avec une source XML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut Alimenter un tableau avec une source XML
    Salut,

    j'aimerais écrire une fonction Javascript compatible FF/IE pour alimenter un tableau javascript avec les valeurs issues d'une source XML, et je ne sais pas trop par quoi commencer donc si une bonne âme est disponible pour m'aiguiller voici quelques détails:

    1) la source 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
    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
    <?xml-stylesheet type="text/xsl" href="habillage.xsl"?>
    <document>
    	<stage>
    		<modules>
    			<module name="module1" id="1">
    				<elements>
    					<element>
    						<id><![CDATA[1]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier11.gif]]></content>
    					</element>
    					<element>
    						<id><![CDATA[2]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier12.gif]]></content>
    					</element>
    					<element>
    						<id><![CDATA[3]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier13.gif]]></content>
    					</element>
    					<element>
    						<id><![CDATA[4]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier14.gif]]></content>
    					</element>
    					<element>
    						<id><![CDATA[5]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier15.gif]]></content>
    					</element>
    				</elements>
    			</module>
    			<module name="module2" id="2">
    				<elements>
    					<element>
    						<id><![CDATA[1]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier21.gif]]></content>
    					</element>
    					<element>
    						<id><![CDATA[2]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier22.gif]]></content>
    					</element>
    					<element>
    						<id><![CDATA[3]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier23.gif]]></content>
    					</element>
    					<element>
    						<id><![CDATA[4]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier24.gif]]></content>
    					</element>
    					<element>
    						<id><![CDATA[5]]></id>
    						<title><![CDATA[Titre de l'element]]></title>
    						<content type="txt/htm"><![CDATA[http://www.mondomaine.fr/monfichier25.gif]]></content>
    					</element>
    				</elements>
    			</module>
    		</modules>
    	</stage>
    </document>
    2) Les éléments de la fonction

    - emplacement : habillage.xsl

    - tableau en variable globale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var montableau = new Array();
    - fonction et paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AlimenterLeTableauAvec("module1");
    AlimenterLeTableauAvec("module2");
    où "module1" et "module2" sont les noeuds de la source xml à considérer pour chaque appel, mais aussi l'unique paramètre de la fonction!

    - pour chaque "element" de "moduleN" je voudrais faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    montableau[<id du noeud moduleN>].push(<valeur de element/content>);
    ouala ouala, personnellement je vais travailler là dessus dès demain, merci d'avance pour vos suggestions

  2. #2
    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
    ton fichier xml il est en local ou distant ?
    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 !

  3. #3
    Membre confirmé Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml-stylesheet type="text/xsl" href="habillage.xsl"?>
    <document>
    	<stage>
    		<modules>
    (...)
    la source xml est "habillée" cache pistache par le "habillage.xsl"

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2006
    Messages : 245
    Par défaut
    Tu peux charger un document Xml avec le code suivant

    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
     
    var xmlDoc;
     
    function loadMenu(fichierXML) { // fichierXML : chemin+nom du fichier
        // cette fonction a pour but de charger le fichier XML
        if (document.implementation && document.implementation.createDocument) { // code pour Mozilla
            xmlDoc = document.implementation.createDocument("","",null);
            xmlDoc.load(fichierXML);
            xmlDoc.onload=traiteXML();
            xmlDoc.close;
        }
        else if (window.ActiveXObject)
        {
     
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = "false";
            xmlDoc.load(fichierXML);            
            traiteXML();
         }
        else {
            alert('le script n\'est pas compatible avec votre navigateur');
        }
    }
     
    function traiteXML() {
            // mettre ici le code pour afficher et/ou traiter le XML
    }
    Voilà, j'espère que çà répond à ta question

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2006
    Messages : 245
    Par défaut
    Juste une précision :

    Dans mon code précédent, la variable XMLDom est un objet qui se parcourt très facilement, de la meme manière que l'objet Document... getElementsByName est une fonction très appréciable pour ce genre de prog

    Voili voilou

  6. #6
    Membre confirmé Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    salut, et merci pour ta suggestion, mon problème c'est que "l'habillage" xsl qui contient la fonction javascript ne doit pas avoir à passer d'url pour charger la source xml, celle-ci est "implicite"... je sais pas si c'est clair, voilà ce que j'ai écris pour l'instant:

    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
    function AlimenterLeTableauAvec(NodeStart) {
     
    	var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
     
    	xmldoc.load("/"); // Ici je ne suis pas sûr que ce soit la bonne méthode!
     
    	var xmlElements = xmldoc.getElementsByTagName(NodeStart);
     
    	var e;
    	var id, content;
     
    	for (var i=0;i<xmlElements.length;i++) {
    		e = xmlElements[i];
     
    		id	= e.getElementsByTagName("id")[0].firstChild.data;
    		content	= e.getElementsByTagName("content")[0].firstChild.data;
     
    		alert("id="+id+"\ncontent="+content);
    	}
    }
     
    AlimenterLeTableauAvec("module1");
    AlimenterLeTableauAvec("module2");

Discussions similaires

  1. Des "null" avec une source xml non vide
    Par anayathefirst dans le forum Jasper
    Réponses: 4
    Dernier message: 24/08/2011, 23h56
  2. Réponses: 3
    Dernier message: 26/01/2011, 12h21
  3. Création d'un crosstab avec une source xml
    Par pyth35 dans le forum iReport
    Réponses: 1
    Dernier message: 28/11/2008, 09h18
  4. Tableau avec une liaison fichier xml
    Par loizic dans le forum InfoPath
    Réponses: 1
    Dernier message: 25/04/2007, 08h21
  5. [VB.NET] Alimenter un dataset avec une chaine XML...
    Par David.V dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/05/2004, 09h09

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