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 flux XML pour transformation côté client


Sujet :

JavaScript

  1. #1
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut lecture flux XML pour transformation côté client
    bonjour,

    je reviens avec mon problème de transformation XML/XSLT côté client. Voilà je fais mes test pour l'instant sur FF, j'appelle donc mon appli serveur avec un HTTPRequest et au retour j'execute une procédure dont voici l'extrait concernant FF :

    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
    var processor;
    	  var xslt;
    	  var xmlDoc;
              var xml = requete.responseText;
     
    	  xslt= document.implementation.createDocument("", "", null);
    	  xslt.async=false;
    	  xslt.load( gxslt);
     
    	  processor =new XSLTProcessor();
          processor.importStylesheet(xslt);
    	  xmlDoc= document.implementation.createDocument("", "", null);
    	  xmlDoc.async=false;
    	  xmlDoc.loadXML( xml);
     
    	  //Affichage du résultat
          document.getElementById( gId).innerHTML='';
          document.getElementById( gId).appendChild( processor.transformToFragment(xmlDoc,document));
    gxslt contient le nom du fichier XSL et gId l'id pour insérer le résultat.
    xml contient le résultat de la requète, et après vérification avec Firebug elle contient exactement la même chose que le fichier 'hello.xml'
    Ce code ne plante pas mais m'affiche toujours une page blanche.

    par contre si je remplace :

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlDoc.load( 'hello.xml')
    là ça fonctionne bien.
    Alors j'ai plus beaucoup de cheveux sur la tête, donc si quelqu'un pouvait me donner une petite explication avant que je m'arrache les derniers, ce serait hyper cool

    Merci,
    Dany

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 670
    Points
    66 670
    Billets dans le blog
    1
    Par défaut
    que te retourne un alert (xml) ???

    il ne garde pas des quotes en trop ?
    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 émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour, et merci,

    non Alert me retourne bien la chaine xml sans aucune quote.

    Merci,
    Dany

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 670
    Points
    66 670
    Billets dans le blog
    1
    Par défaut
    il te retourne hello.xml ?

    tu n'aurais pas un espace avant ou après ou un retour chariot ?

    teste le length
    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 émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    non, justement j'ai enlevé les retours chariot pour être sûr. Voici ce qu'il me retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <hello-world><greeter>An XSLT Programmer</greeter><greeting>Hello, World!</greeting></hello-world>
    par contre il semble que l'execution s'arrête sur le loadxml justement car j'ai placé un alert après et je ne l'ai pas eus.
    Cela fais penser à une erreur dans mon xml, mais je ne la vois pas, et en plus sachant que c'est exactement le code contenu dans le fichier hello.xml, je vois pas pourquoi il n'arriverai pas à le charger ?

    encore merci,
    Dany

  6. #6
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 670
    Points
    66 670
    Billets dans le blog
    1
    Par défaut
    tu ne controle pas le readystatus ?
    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 !

  7. #7
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    en fait j'utilise prototype, et ma procédure est passée en paramètre oncomplète. Il me semble que protoype l'appelle sur le readystatut, ou alors j'ai pas compris (ce qui n'est pas impossible).

    Merci,
    Dany

  8. #8
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 670
    Points
    66 670
    Billets dans le blog
    1
    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 !

  9. #9
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    oui voilà, moi j'ai mis ma function à la place de la function affichereponse de l'exemple donné, et dans xml il y a la valeur du paramètre requete. Donc effectivement, ils confirment que cette fonction est appelée une fois le chargement terminé, donc mon xml doit bien être complet. Je comprend pas et j'ai l'impression de buter sur un truc simple pourtant (

    merci,
    Dany

  10. #10
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 670
    Points
    66 670
    Billets dans le blog
    1
    Par défaut
    je comprend pas ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlDoc.load( 'hello.xml')
    là tu appelle un fichier xml ...

    et tu me dis que le alert(xml) et retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <hello-world><greeter>An XSLT Programmer</greeter><greeting>Hello, World!</greeting></hello-world>
    donc du string ???
    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 !

  11. #11
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    non, si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlDoc.load( 'hello.xml');
    ça fonctionne bien justement

    c'est lorsque je mets à la place :

    que ça fonctione pas et que alert me retourne cela (ce qui est logique puisque c'est ce qu'envoie mon appli serveur).
    Et comme ce que m'envoi le serveur est identique à ce qu'il y a dans mon fichier de test hello.xml, je ne comprend pas pourquoi cela ne fonctionne pas.

    Merci,
    Dany

  12. #12
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour,

    bon et bien je me réponds
    En fait loadxml ne fonctionne pas sous FF visiblement. Donc pour importer du XML sous forme de string voici comment il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var parser=new DOMParser();
    	  var xmlDoc=parser.parseFromString( axml,"text/xml");
    axml étant un string contenant le xml.

    Voilà, et encore merci pour vos contribution.
    Dany

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

Discussions similaires

  1. Moteur de recherche sans carte et lecture flux xml retour
    Par Karine96 dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 30/09/2014, 16h09
  2. Crypter un flux XML pour l'enregistrer
    Par Psycadi dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/04/2011, 11h48
  3. Réponses: 5
    Dernier message: 21/09/2009, 17h42
  4. build.xml pour un programme client serveur
    Par donyas dans le forum ANT
    Réponses: 5
    Dernier message: 22/12/2006, 23h49
  5. [DOM] Flux XML pour application client/serveur
    Par le y@m's dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 11/10/2005, 15h42

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