Bonjour,
dans un programme JS j'ai une fonction getGridTitleForMainLang pour charger le contenu d'un fichier xml dans un tableau, grâce à un HTTPRequest. Cette fonction est ensuite appelée dans une autre fonction loadXMLGridFileToTag pour récupérer ce tableau et l'utiliser comme filtre d'autres données reçues d'un autre fichier xml. Le problème est que je n'arrive pas à récupérer ce tableau de données. J'ai aussi essayé avec la récupération d'un objet mais je n'y arrive pas, cela renvoie toujours 'undefined'.

1) Voici la fonction getGridTitleForMainLang

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
var rootFolder ='file:///D:/LANGUAGES/';
var databaseFolder = 'database/';
function getGridTitleForMainLang(filename) {
    var xmlHTTP2 = new XMLHttpRequest();
    try {
        xmlHTTP2.open("GET", rootFolder + databaseFolder + filename, true);
        xmlHTTP2.setRequestHeader("Content-Type", "text/xml");
        xmlHTTP2.send(null);
    }
    catch (e) {
        window.alert("Unable to load the file "+filename);
    }
    xmlHTTP2.onreadystatechange = function() {
        if (xmlHTTP2.readyState == 4 && this.status == 200) {
            var xmlDoc2 = xmlHTTP2.responseXML;
            var titles = xmlDoc2.getElementsByTagName(mainLang.toLowerCase())[0].childNodes;    
            var gTitles = [];
            for (var i = 0; i < titles.length; i++) {
                if (titles[i].nodeType == 1 && titles[i].childNodes[0].nodeType == '3') {
                    if (titles[i].childNodes[0].nodeValue.trim() == "") {
                        gTitles.push("?");
                    }
                    else {
                        gTitles.push(titles[i].childNodes[0].nodeValue);
                    }
                }
            }
            console.log(gTitles.join(";"));
            return gTitles.join(";");
        }
    }
}
2) Et voici la fonction loadXMLGridFileToTag

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
function loadXMLGridFileToTag(filename, titletag) {
    var x = getGridTitleForMainLang("article.xml");
    alert(x.toString());
    console.log(x); 
    var xmlHTTP = new XMLHttpRequest();
    try {
        xmlHTTP.open("GET", rootFolder + databaseFolder + filename, true);
        xmlHTTP.setRequestHeader("Content-Type", "text/xml");
        xmlHTTP.send();
    }
    catch (e) {
        window.alert("Unable to load the requested file "+filename);
        return;
    }
    xmlHTTP.onreadystatechange = function() {
        if (xmlHTTP.readyState == 4 && this.status == 200) {
            var xmlDoc = xmlHTTP.responseXML;
            var titles = xmlDoc.getElementsByTagName(mainLang.toLowerCase())[0].childNodes;
            var gTitles = [];
            // use the x data here
            // ............................
        }
    }
}
Dans cette seconde fonction, alert(x.toString()) renvoie undefined

Je me demande s'il est possible d'utiliser deux HTTPRequest en même temps.

Qui a une solution ? Merci