none
Extraction d'une valeur précise dans fichier XML RRS feed

  • Question

  • Bonjour,

    Je débute en programmation sur Visual Studio.

    J'ai préchargé un projet pour une application fractionner en JavaScript.

    Je possède trois fichiers xml:

    - user : qui comprend des informations sur les utilisateurs

    <ref_user>
      <user>
        <login></login>
        <nom></nom>
        <prenom></prenom>...

    - pc : qui comprends des informations sur les pc

    <ref_pc>
      <pc>
        <nom_pc></nom_pc>
        <ip_pc></ip_pc>
        <type_pc></type_pc>...

    - pc_user : qui permet de faire le lien entre les deux tables citées précédemment.

    <ref_pc_user>
    <pc_user>
        <nom_pc></nom_pc>
        <login></login>
    </pc_user>
    <pc_user>
        <nom_pc></nom_pc>
        <login></login>
    </pc_user>
    </ref_pc_user>

    Ma question est simple : je souhaiterai extraire les information des pc rattachés à un utilisateur (un utilisateur peut avoir plusieurs pc et un pc peut être utilisé par plusieurs utilisateurs) sans avoir à charger les tables pc et pc_user et à comparer tous les éléments un par un comme je le fais actuellement dans mon code.

    Vous en remerciant par avance. Ci-dessous mon code

        function loadXMLPCUser(user) {

            //déclaration et initialisation des variables
            var varXMLPCUser;//variable contenant la table pc_user
            var varXMLPC;//variable contenant la table pc
            var retour = "";//variable retournée
            var loginPcUser;//variable contenant le login dans la table pc_user
            var pcPcUser;//variable contenant le nom du pc dans la table pc_user
            var pc;//variable contenant le nom du pc de la table pc
            var longPCUser;

           //recuperation de la table pc_user
            if (window.XMLHttpRequest) {
                var xmlhttp = new XMLHttpRequest();
            }
            else {
                var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }

            xmlhttp.open("GET", "/pages/tables/pc_user.xml", false);
            xmlhttp.send();
            if (xmlhttp.readyState == 4) {
                var varXMLPCUser = xmlhttp.responseXML.documentElement.getElementsByTagName("pc_user");
                longPCUser = varXMLPCUser.length;
                //récupération de la table pc
                xmlhttp.open("GET", "/pages/tables/pc.xml", false);
                xmlhttp.send();
                if (xmlhttp.readyState == 4) {
                    var varXMLPC = xmlhttp.responseXML.documentElement.getElementsByTagName("pc");
            

            //parcours de la table pc_user
            for (var i_pcuser = 0; i_pcuser < longPCUser ; i_pcuser++) {

                //récupération du login
                var xx = varXMLPCUser[i_pcuser].getElementsByTagName("login");
               try {
                    loginPcUser = xx[0].firstChild.nodeValue;
                } catch (er) {
                    loginPcUser = "";
                }
                

                //test du login contenu dans pc_user avec login de l'utilisateur
               if (loginPcUser == user) {

                   //récupération du nom du pc dans la table pc_user
                   var xx = varXMLPCUser[i_pcuser].getElementsByTagName("nom_pc");
                   try {
                       pcPcUser = xx[0].firstChild.nodeValue;
                   } catch (er) {
                       pcPcUser = "";
                   }

                   //parcours de la table pc
                   for (var i_pc = 0; i_pc < varXMLPC.length ; i_pc++) {

                       //récupération du nom du pc
                       xx = varXMLPC[i_pc].getElementsByTagName("nom_pc");
                       pc = xx[0].firstChild.nodeValue;
                       if (pcPcUser == pc) {
                           var x = varXMLPC[i_pc].getElementsByTagName("nom_pc");
                           xx = x[0].firstChild.nodeValue;
                           retour = retour + "<TR vAlign=top><TD noWrap><BR><B>PC(S)</B></TD></TR>";
                             retour = retour + "<TR><TD colSpan=4><HR></TD></TR>";

                       }
                   }

               }
            }
                }
                else { retour = retour + "<TR vAlign=top><TD noWrap><B>Table PC non chargée</B></TD>";}
                   
            }
            else { retour = retour + "<TR vAlign=top><TD noWrap><B>Table PC_USER non chargée</B></TD>";}
            return retour;
        }

    jeudi 28 août 2014 16:20