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 :

Récupération du premier élement d'un fichier XML


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut Récupération du premier élement d'un fichier XML
    Bonjour à tous.

    Je cherche à ne récupérer QUE le premier élément d'un fichier xml.

    Le fichier XML à la structure suivante (incomplète) :
    Code xml : 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
     
    <LOGS>
    	<VERSION>
    		<NUM>3.2.0</NUM>
    		<ENTREE>
    			<MAIN></MAIN>
    			<SUB></SUB>
    			<SUB></SUB>
    		</ENTREE>
    		<ENTREE>
    			<MAIN></MAIN>
    			<SUB></SUB>
    		</ENTREE>
    	</VERSION>
    	<VERSION>
    		<NUM>3.1.15</NUM>
    		<ENTREE>
    			<MAIN></MAIN>
    		</ENTREE>
    	</VERSION>
    ...
    ...
    ...
    </LOGS>

    Pour la lecture du fichier XML, on utilise ce code qui fonctionne, mais on récupère toutes les valeurs et pas uniquement la première.
    Je n'arrive pas à récupérer uniquement le premier NUM saisi :
    Code jquery : 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
     
    function RecupVersion()
    {
    	let WVersion = "";
        $(document).ready(function ()
        {
            $.ajax(
            {
                type: "GET",
                url: "./fichiersXML/data/version.xml",
                async: false,
                dataType: "xml",
                error : function()
                {
                    alert("Fichier version.xml non trouvé !");
                },
                success : function(xml)
                {
                    $(xml).children("LOGS").each(function()
                    {
                        $(this).children("VERSION").each(function()
                        {
                            $(this).children("NUM").each(function()
                            {
                               WVersion = $(this).text();
                            });
                        });
                    });
                }
            });
        });
    }

    J'ai essayé plusieurs choses qui n'ont pas fonctionnées :
    - .first, à la place des .each.
    - $(this).find(':first').attr("NUM");.
    - etc...

    Je pense que je dois mal l'utiliser, mais là, je cale.

    Merci d'avance pour votre aide avisée...

  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
    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
    XML="<LOGS>\
    	<VERSION>\
    		<NUM>3.2.0</NUM>\
    		<ENTREE>\
    			<MAIN></MAIN>\
    			<SUB></SUB>\
    			<SUB></SUB>\
    		</ENTREE>\
    		<ENTREE>\
    			<MAIN></MAIN>\
    			<SUB></SUB>\
    		</ENTREE>\
    	</VERSION>\
    	<VERSION>\
    		<NUM>3.1.15</NUM>\
    		<ENTREE>\
    			<MAIN></MAIN>\
    		</ENTREE>\
    	</VERSION>\
    </LOGS>";
    $XML= $(XML);
    num= $XML.find('VERSION:eq(0)>NUM').html();
    console.log(num)
    num= $XML.find('VERSION:eq(1)>NUM').html();
    console.log(num)
    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 éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Impec.
    Merci beaucoup.

    La fonction donne ça dans un premier temps, on va maintenant l'adapter.

    Code jquery : 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
     
    function RecupVersion()
    {
    	let WVersion = "";
        $(document).ready(function ()
        {
            $.ajax(
            {
                type: "GET",
                url: "./fichiersXML/data/version.xml",
                async: false,
                dataType: "xml",
                error : function()
                {
                    alert("Fichier version.xml non trouvé !");
                },
                success : function(xml)
                {
                    // $(xml).children("LOGS").each(function()
                    // {
                        // $(this).children("VERSION").each(function()
                        // {
                            // $(this).children("NUM").each(function()
                            // {
    // console.log("WVersion="+WVersion);							
    							// WVersion = $(this).text();
                            // });
                        // });
                    // });
    				$XML= $(xml);
    				num= $XML.find('VERSION:eq(0)>NUM').html();
    				console.log(num);
    				num= $XML.find('VERSION:eq(1)>NUM').html();
    				console.log(num);
     
                }
            });
        });
    }

    Merci encore.

  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
    dans une boucle si besoin :
    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
    XML="<LOGS>\
    	<VERSION>\
    		<NUM>3.2.0</NUM>\
    		<ENTREE>\
    			<MAIN></MAIN>\
    			<SUB></SUB>\
    			<SUB></SUB>\
    		</ENTREE>\
    		<ENTREE>\
    			<MAIN></MAIN>\
    			<SUB></SUB>\
    		</ENTREE>\
    	</VERSION>\
    	<VERSION>\
    		<NUM>3.1.15</NUM>\
    		<ENTREE>\
    			<MAIN></MAIN>\
    		</ENTREE>\
    	</VERSION>\
    </LOGS>";
    $XML= $(XML);
    $child=$XML.find('VERSION').each( function(){
    console.log ( $(this).find('NUM').html() )
    });
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $child=$XML.find('VERSION>NUM').each( function(){
    console.log ( $(this).html() )
    });
    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 éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Je dérive un chouïa par rapport à la question de départ, mais impossible de récupérer la valeur en dehors de ma fonction ???

    Code jquery : 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
     
    function RecupVersion()
    {
        $(document).ready(function ()
        {
            $.ajax(
            {
                type: "GET",
                url: "./fichiersXML/data/version.xml",
                async: false,
                dataType: "xml",
                error : function()
                {
                    alert("Fichier version.xml non trouvé !");
                },
                success : function(xml)
                {
    				$XML= $(xml);
    				num= $XML.find('VERSION:eq(0)>NUM').html();
                }
            });
        });
        return num;
    }
    ...
    ...
    ...
    var G_VERSION = RecupVersion();
    ...
    ...
    ...

    Je passe à côté de quoi ?

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    Bonjour,
    Je dérive un chouïa par rapport à la question de départ
    et avec un minimum de recherche

    Un grand classique : Un classique AJAX : utiliser les données au bon moment !

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

Discussions similaires

  1. [9.2] Récupération avec COPY TO dans un fichier XML
    Par Melo92 dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 31/05/2014, 22h19
  2. Réponses: 10
    Dernier message: 07/01/2013, 11h25
  3. [JDOM] Récupération d'un encodibg d'un fichier xml
    Par lionel84 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 19/01/2009, 11h04
  4. [SAX] Récupération d'informations à partir d'un fichier xml
    Par wajdi_forum dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 11/07/2008, 15h10
  5. [DOM] Récupérer le nom du premier noeud d'un fichier XML en PHP
    Par ePsymon dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/02/2008, 09h17

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