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 :

lecture d'un xml


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut lecture d'un xml
    salut
    je communique via ajax en js et php
    j'utilise le mode texte je fais passer une chaine de caratere (qui en fait un xml non converti)

    et j'essai de la charger grace a loadXML mais cela ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function action(XML)
    {
     
    	var xmldoc=document.implementation.createDocument("","",null); 
    	var xml=xmldoc.loadXML(XML);
    	xml=cleanWhitespace(fic.documentElement);
    si vous savez envoyer un xml de php a js sa m'interresse aussi car j'ai essayé mais ca ne fonctionne pas

    merci

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    il faut que tu envoit une chaine xml avec prologue xml et que tu mette les headers text/xml en php.

    Apres, tu recupère le responseXml et pas le responseText.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    je suis pu vraiment sur le bon forum mais comme j'ai commencer

    le code php qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$buffer='<?xml version="1.0" encoding="UTF-8" ?><root><action>inform</action>';
    		if($tab)
    		$buffer.='<message>les changements ont bien étés pris en comptes</message>';
    		else
    		$buffer.='<message>erreur</message>';
    		$buffer.='</root>';
    		header("Content-type: text/xml; charset: UTF-8"); 
    		echo utf8_encode($buffer);
    		exit();
    et le bou de js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(xmlhttp.reponseXML);
    ca me retoune undefined

    sinon la premier solution fonctionne sous ie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (document.implementation && document.implementation.createDocument){
    		var xmldoc=document.implementation.createDocument("","",null);
    		var xml=xmldoc.loadXML(XML);
    		xml=cleanWhitespace(xml.documentElement);
    	}else{
    		var xmldoc=new ActiveXObject("msxml2.domdocument");
    		var xml=xmldoc.loadXML(XML);
    	}

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    responseXml pas reponse

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    tout de suite ca va mieux

    merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    bon je pensais avoir compris comment on navigue dans un xml mais c'est pas encore ca
    je voudrai juste resupere la valeur de action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cleanWhitespace(XML.documentElement);
    	var xml=XML.documentElement;
    	var functions=xml.getElementsByTagName('action')[0].value;
    	alert(functions);
    functions est bien une varaible texte non?

    le fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <root>
    <action>nomdefonctio</action>
    <message>jhgkuj</message>
    </root>

  7. #7
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    essayes nodeValue plutot ou firstChild.nodeValue

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    avec ta solution il me dit que soit la valeur est nulle ou alors que ce n'est pas un objet

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var functions=xml.getElementsByTagName('action')[0];
    lediv = document.createElement("div");
    for(i in functions)
    lediv.innerHTML += i+ " : "+functions[i]+"<br />";
    document.body.appendChild(lediv);
    tu verras toutes les propriétés de ton objet functions comme ca

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    voila quelque chose de bien pratique
    a la lecture du resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    getElementsByTagName : function getElementsByTagName() { [native code] }
    nodeName : action
    nodeValue : null

    ou est passer la valeur de action : :

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    dans son firstChild

    c est pour ca que je t avais dis de faire un firstChild.nodeValue, le contenu est un text donc un node de type #text

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    donc ceci devrai fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var functions=xml.getElementsByTagName('action').firstChild.nodeValue;
    mais ca ne fonctionne pas

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut

    non c'est bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var functions=xml.getElementsByTagName('action')[0].firstChild.nodeValue;
    merci

  14. #14
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    fais ca plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       var xml=cleanWhitespace(XML.documentElement);
    sinon refais une exploration mais avec le firstChild

  15. #15
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    ok pas de probleme
    bon code

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    on reprend les meme et on recommence

    je veus maintenat lire tous les attributs de la balise concerné et les mettre dans un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var node=xml.getElementsByTagName('action')[0];
    if(node.hasAttributes()){
    		var args=new Array();
    		for(i in node.attributes){
    		args[i]=node.i.nodeValue;
    		}
    		alert(args.length+'----'+args[0]);
    le probleme est au niveau de args[i]=node.i.nodeValue;

    et apres j'aimerai xecute une fonction qui a la valeur de la balise action avec ces attribut comme argument
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //eval(functions(xml,args));
    ca doit un truc avec eval mais bon
    chaque chose en son temps

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    la lecture des argument se passe bien maintenant
    j'ai plus qu'a trouver comment executer la fonction

  18. #18
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    construit une chaine que tu passe a eval

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    rectification sous
    ff j'ai ce message d'erreur mais mon tableau est bien rempli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur : [JavaScript Error: "invalid array length" {file: "http://localhost/projet_ing/template/templates/js/groupe.js" line: 90}]
    Fichier source : http://localhost/projet_ing/template/templates/js/groupe.js
    Ligne : 90
    et sous ie ca plante icicode complet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(node.hasAttributes()){
    		var args=new Array();
    		for(i in node.attributes){
    			args[i]=node.attributes[i].nodeValue;
    			alert(i+'---'+args[i]);
    		}
    		//eval(functions(xml,args));
    	}else{
    		alert('yes');
    		eval(functions(xml));
    	}
    edit: de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(functions+'('+xml+','+args+')');

  20. #20
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    essayes de faire des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    args.push(node.attributes[i].nodeValue);
    il te dis quoi comme erreur ie ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/08/2006, 16h30
  2. [VB6]Lecture d'attributs XML
    Par BouB dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/05/2006, 16h01
  3. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52
  4. VA lors de lecture du fichier XML
    Par LN(a) dans le forum Langage
    Réponses: 6
    Dernier message: 14/09/2005, 23h43
  5. [FLASH MX2004] [XML] Lecture de données XML
    Par ZiT dans le forum Flash
    Réponses: 1
    Dernier message: 12/07/2005, 11h51

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