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 :

[JS/XML/Ajax?] Lecture d'un fichier XML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Hao
    Hao est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Par défaut [JS/XML/Ajax?] Lecture d'un fichier XML
    Bonjour,

    je viens à vous après de longues heures de lutte acharnée face à JS que je découvre à peine (ci-après nommé Miguel), XML/XSL (de même, et ci-après nommé Pedro) et la "new technology" Ajax (tout pareil que Miguel et Pedro).

    Je vous explique mon problème : j'ai mon fichier afficherTableau.xsl dans lequel j'ai un tableau que je génère via un XML (donc, en XSL). Jusque là ça va. En cliquant sur une des lignes du tableau, je veux accéder à un attribut de l'élément cliqué. J'affiche cela dans ma lightbox, une div cachée dans ma page (qui marche, elle).

    Bon, mon premier problème, c'est comment sauvegarder l'id de ma ligne (cet id est en fait la position [fonction position() de XSL] du noeud affiché dans ma ligne) sur laquel je clique afin de la donner à ma fonction qui affichera les détails de cette ligne ? Après quelques manipulations, je n'arrive à rien de probant.

    Mais surtout, je tente sans résultat de récupérer ces informations à afficher (des attributs de mes éléments dans le tableau) en utilisant Ajax (enfin, on va plutôt dire que j'utilise XMLHttpRequest). Je viens d'être jeté dans le monde de la programation ouèb et beaucouop de chose m'échappent.

    [edit]
    Pour donner un petit exemple pour être plus clair, disons que ceci est mon fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <A>
        <a1>
            <a11 attribut1="a" attribut2="b" />
        </a1>
        <a2>
            <a21 attribut1="a123" attribut2="b123" />
            <a22 attribut1="a213" attribut2="b213" />
            <a23 attribut1="a321" attribut2="b321" />
        </a2>
        [...]
    J'affiche dans mon tableau tous les attributs "attribut1" des éléments "a2x" et je veux, en cliquant sur une des lignes de mon tableau, accéder à l'attribut "attribut2" de l'élément cliqué afin de l'afficher.

    Pour cela, je veux sauvegarder l'id de ma ligne (cad la position du noeud), appeler le fichier XML, lire le noeud n°id et afficher l'attribut qui m'intéresse.
    [/edit]

    Voici mon code :
    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
     
    function getMessage(id)
    {
    	var req = null;
     
    	if (window.XMLHttpRequest)
    	{
    		req = new XMLHttpRequest();
    		if (req.overrideMimeType)
    		{
    			req.overrideMimeType('text/xml');
    		}
    	}
    	else if (window.ActiveXObject)
    	{
    		try {
    			req = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e)
    		{
    			try {
    				req = new ActiveXObject("Microsoft.XMLHTTP");
    			} catch (e) {}
    		}
    	}
     
    	req.onreadystatechange = function()
    	{
    		if(req.readyState == 4)
    		{
    			if(req.status == 200)
    			{
    				// process a XML document here
    				var doc = req.responseXML;
    				var element = doc.getElementsByTagName("chemin-en-xpath?").item(0);
    				document.getElementById("meuh").innerHTML = element.firstChild.data;
    				//document.getElementById("meuh").innerHTML = element;
     
    			}
    			else
    			{
    				document.getElementById("meuh").innerHTML = "Error: returned status code " + req.status + " : " + req.statusText;
    			}
    		} else {
    			document.getElementById("meuh").innerHTML = "Error perso" ;
    		}
    	};
    	req.open("GET", "test.xml", true);
    	req.send(null);
    }
    J'ai récupéré la base de ce code sur un tuto très bien fait Malheureusement, chez moi, le seul affichage que j'obtiens est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error: returned status code 0 :
    Je pense que mes problèmes viennent de ces 2 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var element = doc.getElementsByTagName("chemin-en-xpath?").item(0);
    Auquel cas, je n'ai pas compris le principe du parcours du fichier grâce à getElementByTagName. Peut-être est-ce impossible de lire un XML avec ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    req.open("GET", "test.xml", true);
    Là, je me dis qu'au lieu de mettre l'url (relative) de mon fichier, c'est plutôt celle du serveur qu'il faut mettre ? Si oui, quoi utiliser ? et comment tester en local ?

    Je vous avous que je n'arrive plus à comprendre quoi que ce soit :-/
    Je vous demande donc votre aide.

    Merci d'avance.

  2. #2
    Hao
    Hao est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Par défaut
    Personne n'a une petite idée qui pourrait me débloquer ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/02/2012, 18h30
  2. [DOM] Reconstruire un fichier XML à partir d'un autre fichier XML
    Par Jonvols dans le forum Format d'échange (XML, JSON...)
    Réponses: 12
    Dernier message: 13/11/2010, 01h49
  3. Réponses: 5
    Dernier message: 23/03/2009, 16h36
  4. [XSLT] generer un fichier xml optmise d'un autre fichier xml
    Par maguie dans le forum XSL/XSLT/XPATH
    Réponses: 22
    Dernier message: 08/04/2008, 15h45
  5. [C#] [XML] Lecture d'un fichier XML => Combobox
    Par Chad`Chiwa dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/03/2005, 08h57

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