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

jQuery Discussion :

Lecture d'un fichier XML avec JQuery


Sujet :

jQuery

  1. #21
    Membre habitué Avatar de MGD_Software
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 137
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    heu et la balise body ? (cf mon intervention au dessus ...)
    Non, ce n'est pas la balise body qui pose problème. Je l'ai remplacée avec tag-body et le résultat est le même.

    Par contre, j'ai découvert que le fichier XML de la collection d'albums, placée un niveau au-dessus, ne plantait pas (bien que contenant aussi une balise body).
    J'ai donc refait une page de test pour comprendre, et là surprise, IE ne plante plus, ni pour la collection, ni pour les albums.
    Certes la page de test ne lit pas tout le fichier, mais utilise des boucles à deux niveaux sur des balises imbriquées. C'est donc assez démonstratif.

    Cependant, j'ai toujours des warnings "mal formé" dans la console de Firefox, mais rien dans celle de IE (dont je me sers très mal il est vrai).
    Ces avertissements se produisent en pas à pas lors de l'appel de la fonction $(...).find(...). Je n'arrive pas à comprendre pourquoi.

    Comme j'ai profondément modifié le code initial, je ne sais pas pourquoi cela plantait IE dans la version complète en XML (comme je l'ai dit, je suis passé entre temps avec une variable tableau Javascript).
    Mais comme je souhaiterais pouvoir utiliser XML, je vais me relancer sur cette version de la galerie.

    Je publierai ici le résultat.
    En attendant, vous pouvez tester la page et son code sur : http://mgd.zz.mu/albums/test.htm

    A suivre...

  2. #22
    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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    A priori je n'ai pas d'erreurs sous IE avec le lien donné ... ?
    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. #23
    Membre habitué Avatar de MGD_Software
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 137
    Points : 139
    Points
    139
    Par défaut
    Je crois que j'ai trouvé ce qui plante IE.
    Si j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var comment = $(xml).find('album').find('common').find('comment').text();
    IE ne plante pas. Par contre, si j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var comment = $(xml).find('album').find('common').find('comment').html();
    IE plante.

    Il semblerait que le tandem JQuery / IE ne sache pas ramener la valeur HMTL de la balise, mais seulement son contenu texte.
    C'est très ennuyeux pour moi, car j'ai besoin de passer du HTML dans les valeurs, ne serait-ce que pour des retours à la ligne avec <br> ou du passage en gras ou en italique.

    J'ai trouvé un moyen secours, c'est de générer du XML déjà préformaté en HTML : la fonction text() récupère le texte avec ses balises en clair, et j'injecte ça dans l'objet cible en tant que HTML. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dans le fichier XML:
    Ceci est un album réalisé entièrement en &lt;em&gt;JavaScript&lt;/em&gt;&lt;br&gt;Il utilise &lt;strong&gt;JQuery&lt;/strong&gt; et  WebAlbums
     
    et dans le fichier JS:
    var comment = $(xml).find('album').find('common').find('comment').text();
    $('#comment').html(comment);
    ça fonctionne et ça donne:
    Ceci est un album realisé entièrement en JavaScript
    Il utilise JQuery et WebAlbums.

    Reste que Firefox me renvoie toujours les avertissements "mal formé" pour chaque ligne comprenant un appel à find(). Mais j'ai décidé de passer outre, j'ai déjà perdu trop de temps sur ce problème qui n'est pas bloquant. Heureusement que c'est un projet en freeware, sinon j'aurais mangé la grenouille sur cette affaire.

    Si quelqu'un en trouve la raison, merci d'en faire part.

  4. #24
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 956
    Points : 44 116
    Points
    44 116
    Par défaut
    Bonjour,
    IE ne plante pas.(...)IE plante.
    la documentation jQuery l'indique

    Citation Envoyé par jQuery.html()
    This method is not available on XML documents.
    Citation Envoyé par jQuery.text()
    Unlike the .html() method, .text() can be used in both XML and HTML documents.

  5. #25
    Membre habitué Avatar de MGD_Software
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 137
    Points : 139
    Points
    139
    Par défaut
    Bien, voilà qui résout le mystère du plantage de IE (et d'ailleurs pourquoi les autres navigateurs fonctionnent ? ...).
    C'est vrai, je n'ai pas consulté la doc, mais s'il fallait lire toute la doc pour chaque ligne de programme, autant fermer boutique.
    Merci pour la recherche.

    Mais cela ne résout pas celui du "mal formé" dans le find(). Je n'ai plus le temps de chercher plus loin, et je ferai avec.
    Merci à tous.

  6. #26
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    J'ai effacé mes tests, mais je suis presque certain d'avoir automatiquement remplacé le html() par un text().

    Dans la solution proposée au message 16 ("http://www.crashcoder.com/read-xml-using-jquery-using-find-each-function-doesnt-return-data-not-work-in-ie/") c'est bien avec text() qu'il constate un problème.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Lecture d'un fichier XML avec JQuery
    Par MGD_Software dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 23/01/2015, 20h44
  2. lecture d'un fichier xml avec jquery
    Par devkoax dans le forum jQuery
    Réponses: 6
    Dernier message: 24/10/2011, 21h15
  3. Lecture d'un fichier XML avec Xpath
    Par jmjmjm dans le forum C#
    Réponses: 4
    Dernier message: 27/10/2009, 14h16
  4. [JDOM] Exception pendant la lecture d'un fichier XML avec JDOM
    Par 0coco0 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 20/03/2009, 11h21
  5. Problème lors de la lecture d'un fichier xml avec XMLBeans
    Par oscar78 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 07/09/2007, 14h04

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