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 image getElementsByTagName('img')


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Points : 24
    Points
    24
    Par défaut lecture image getElementsByTagName('img')
    bonjour,
    je n'arrive pas a savoir pour je n'arrive pas a lire le src de la balide:

    <img src"xxx" /> aussi balise <a href="zzzz" /> a partir d'un fichier xml

    parcontre les avec les autres tout va bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <description>
    <![CDATA[
    <img src="http://l.yimg.com/a/i/us/we/52/34.gif"/><br />
    <b>Current Conditions:</b><br />
    Fair, 59 F<BR />
    <BR /><b>Forecast:</b><BR />
    Mon - Mostly Sunny/Wind. High: 67 Low: 46<br />
    Tue - Mostly Sunny. High: 78 Low: 51<br />
    <br />
    <a href="http://us.rd.yahoo.com/dailynews/rss/weather/Lincoln__NE/*http://weather.yahoo.com/forecast/USNE0283_f.html">Full Forecast at Yahoo! Weather</a><BR/><BR/>
    (provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/>
    ]]></description>


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    xml = GXml.parse(data);
     
     var monvar = xml.getElementsByTagName('img').attributes.getNamedItem("src").nodeValue;

    ce code n'afficher rien..
    même si je réessayer seulement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     var monvar = xml.getElementsByTagName('img').length;
    il m'affiche 0!!!!!!

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementsByTagName('img')
    retourne une collection ...

    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementsByTagName('img')[indice]

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    j'ai déjà une seule balise <img ..

    en plus j'ai déjà testé avec le numéro d'indice mais malheureusement

    je n'arrive pas a comprendre pourquoi!!!!

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    avec quel numéro as tu testé ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementsByTagName('img')[0]

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour et Bienvenue sur Developpez .
    Ta balise "img" est à l'intérieur de CDATA.

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    oui j'ai essayer avec l'indice 0

    et le problème c'est que le format du fichier est inchangeable . stp, y a t'il une méthode pour lire cette fameuse balise..

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par abir001 Voir le message
    oui j'ai essayer avec l'indice 0

    et le problème c'est que le format du fichier est inchangeable . stp, y a t'il une méthode pour lire cette fameuse balise..
    le monsieur a dit plus haut :
    ta balise est à l'intérieur de CDATA, ce qui signifie que le contenu du CDATA est traité comme du TEXTE, donc tu ne pourras jamais y accéder par le dom
    la seule technique possible c'est :

    var valeurdunoeud = xml.(regarde la méthode pour récupérer la valeur du noeud)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var divTmp = document.createElement('div');
    div.innerHTML = valeurdunoeud;
     
    var src = div.getElementsByTagName('img')[0].src;

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    j'ai bien compris la solution.

    mais je n'arrive pas a trouver la méthode pour récupérer la valeur du noeud ???

    j'ai essayer avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     valeurdunoeud = xml.documentElement.getElementsByTagName('description').nodeValue
    mais malheureusement elle ne fonctionne pas

  9. #9
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par abir001 Voir le message
    j'ai bien compris la solution.

    mais je n'arrive pas a trouver la méthode pour récupérer la valeur du noeud ???

    j'ai essayer avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     valeurdunoeud = xml.documentElement.getElementsByTagName('description').nodeValue
    mais malheureusement elle ne fonctionne pas
    on t'a dit plusieurs fois que getElementsByTagName te retourne une nodeList et donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     valeurdunoeud = xml.documentElement.getElementsByTagName('description')[0].nodeValue
    .
    tu voudrais pas essayer un peu d'utiliser firebug et faire des console.log pour comprendre ce que tu fais. Tu gagnerais un temps précieux.

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    je m'excuse j'ai cru qu'elle fonction si j'ai une seul balise

    mais domage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     valeurdunoeud = xml.documentElement.getElementsByTagName('description')[0].nodeValue
    ce code me retourne NULL !!!

  11. #11
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xml = GXml.parse(data);
    ???
    c'est quoi ça ?


    sinon tu es toujours dans une balise cdata ??

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     valeurdunoeud = xml.documentElement.getElementsByTagName('description')[0].firstChild.nodeValue

  13. #13
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par abir001 Voir le message
    je m'excuse j'ai cru qu'elle fonction si j'ai une seul balise

    mais domage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     valeurdunoeud = xml.documentElement.getElementsByTagName('description')[0].nodeValue
    ce code me retourne NULL !!!
    firefox + firebug + la console + dans le code tu fais un :
    console.log(xml.documentElement.getElementsByTagName('description')[0])

    après tu cliques sur l'objet dans la console et tu parcoures les propriétés possibles qui te seront utile dans le cadre d'un cdata.


    /me pars rechercher du code qui marche

    Edit :
    Dans un objet qui me permettait de convertir un XML en objet JS, j'ai cette methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    getContent = function(node) {
        var str = [];
        for (var i=0; i<node.childNodes.length; i++) {
            str.push(node.childNodes[i].nodeValue);
        }
        return str.join('');
    }
    Et le nodeValue fonctionne parfaitement

  14. #14
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       xml = GXml.parse(data);

    cette fonction permet d'analyse la chaîne donnée sous forme de texte XML (le variable data) et retourne une représentation DOM. Si le navigateur ne supporte pas d'analyse syntaxique XML native, elle retourne le noeud DOM d'un élément vide DIV.

    je travaille sur une MAP

    Mais elle fonctionne bien est me mer retourne un objet XML [object XMLDocument]

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    merci beaucoup pour l'aide mais le problème n'est pas encore résolu..

    ce code me retourne l'ensemble des balises

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     valeurdunoeud = xml.documentElement.getElementsByTagName('description').nodeValue
    mais pour l'insertion dans la balise div il y a toujours problème je ne sais pas pourquoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     var divTmp = document.createElement('div');  
    divTmp.innerHTML = valeurdunoeud;
    var src = divTmp.getElementsByTagName('img')[0].src;

  16. #16
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    divTmp n'a pas été appendé dans le document ...

  17. #17
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par abir001 Voir le message
    merci beaucoup pour l'aide mais le prob n'est pas encore résolu..

    ce code me retourne l'esemble des balise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     valeurdunoeud = xml.documentElement.getElementsByTagName('description').nodeValue
    mais pour l'insertion dans la balise div il y a toujours problème je ne sais sais pas pourquoi!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var divTmp = document.createElement('div');  
    divTmp.innerHTML = valeurdunoeud;
    var src = divTmp.getElementsByTagName('img')[0].src;
    Tu as fait ce que je t'ai dit ???
    tu as découpé ton code ?
    tu as mis des console.log avec firebug ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    console.log(xml);
    console.log(xml.documentElement);
    var nodesDescription = xml.documentElement.getElementsByTagName('description');
    console.log(nodesDescription);
    var firstDescription = nodesDescription[0];
    console.log(firstDescription);
    console.log(firstDescription.nodeValue);
    Tu as installé firebug ? tu as activé firebug ? tu mets ce code à la place du tiens et tu regardes les résultats dans la console et les erreurs que te donne firefox. Merci

  18. #18
    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 : 74
    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
    Bonsoir.

    Je vous conseille la lecture du tutoriel : Maîtriser Firebug, l'indispensable extension Firefox pour le développement web

    Un bon conseil est utile, l'énervement est stérile.

  19. #19
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Je m'énerve pas :p
    Ce qui commence à être énervant c'est qu'il revient à chaque fois en mode : "ça marche pas"
    Il recolle du code avec les mêmes erreurs alors qu'on les a corrigé 2 posts au-dessus
    J'ai l'impression qu'il n'a même pas essayé firebug, il aurait tout de suite vu son pb.

    Il suivrait les instructions que je lui donne à la lettre il aurait déjà réglé son problème.

    Dans la vie quand une ligne pose problème on la décortique, et on l'analyse. Le mieux c'est de mettre un breakpoint sur le code avec firebug et tracer les variables.

Discussions similaires

  1. Lecture images .tiff sous flex
    Par samy2525 dans le forum Flex
    Réponses: 2
    Dernier message: 03/02/2010, 16h12
  2. probleme lecture images films en 'MHT'
    Par pierrefrancoise dans le forum Internet
    Réponses: 2
    Dernier message: 30/11/2008, 21h22
  3. ImageIO-ImageReader lecture image
    Par lun4t1k dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 10/04/2008, 09h39
  4. Configurer le chemin par défaut de recherche des images (balise <img src>)
    Par DJ Caësar 9114 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/03/2007, 08h00
  5. [Images] Redimension img et enregistrer autre répertoire
    Par dldstyle dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 27/04/2006, 23h00

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