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 :

Manipuler XML avec Javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    D�veloppeur informatique
    Inscrit en
    Mars 2009
    Messages
    39
    D�tails du profil
    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 39
    Par d�faut Manipuler XML avec Javascript
    Salut tout le monde
    J'ai t�l�charg� sur la toile un exemple de code javascript( dans du html) permettant de lire lun fichier XML,cependant mon navigateur (IE) m'affiche rien du tout,il fait comme si de rien n'�tait.
    Il y'a le fichier XML emploee.xml et le fichier HTML employee.html

    employee.xml
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <? xml version = "1.0" encoding = "UTF-8"?>  
    	  <company> 
    		  <employee id = "001"> John </employee> 
    		  <turnover> 
    			  <year id = "2000"> 100000 </year> 
    			  <year id = "2001"> 140000 </year> 	
    			  <year id = "2002"> 200000 </year> 
    		  </turnover> 
    	  </company>
    employee.html
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    <html> 
       <head> 
        <title> XML dans Microsoft Navigateurs </title> 
        <script language="javascript" type="text/javascript"> 
          var xmlDoc; 
          function loadxml() 
          { 
            xmlDoc = new ActiveXObject ( "Microsoft.XMLDOM"); 
            xmlDoc.async = false; 
            xmlDoc.onreadystatechange = readXML; 
            xmlDoc.load ( "employee.xml"); 
    		alert ( "Root nom de la balise XML:");
          } 
     
          function ReadXML() 
          { 
             if (xmlDoc.readyState == 4) 
             { 
              / / Utilisation documentElement Propriétés 
              / / Output entreprise 
              alert ( "Root nom de la balise XML:" + xmlDoc.documentElement.tagName); 
     
              / / Utilisation firstChild Propriétés 
              / / Output année 
              alert ( "Premier Enfant:" + xmlDoc.documentElement.childNodes [1]. firstChild.tagName); 
     
    	  / / Utilisation lastChild Propriétés 
    	  / / Output moyenne 
    	  alert ( "Last Child:" + xmlDoc.documentElement.childNodes [1]. lastChild.tagName); 
     
    	  / / Utilisation de propriétés et des attributs nodeValue 
    	  / / Ici, à la fois la déclaration sera de retour le même résultat 
    	  / / Output 001 
    	  alert ( "Valeur Node:" + xmlDoc.documentElement.childNodes [0]. attributs [0]. nodeValue); 
    	  alert ( "Valeur Node:" + xmlDoc.documentElement.childNodes [0]. attributes.getNamedItem ( "id"). nodeValue); 
     
    	  / / Utilisation getElementByTagName Propriétés 
    	  / / Ici, à la fois la déclaration sera de retour le même résultat 
    	  / / Output 2000 
    	  alert ( "getElementsByTagName:" + xmlDoc.getElementsByTagName ( "year") [0]. attributes.getNamedItem ( "id"). nodeValue); 
     
    	  / / Utilisation de texte Propriétés 
    	  / / Output John 
    	  alert ( "Text Content for Employee Tag:" + xmlDoc.documentElement.childNodes [0]. texte); 
     
    	  / / Utilisation hasChildNodes Propriétés 
    	  / / Output True 
    	  alert ( "Vérification de noeuds enfants:" + xmlDoc.documentElement.childNodes [0]. hasChildNodes); 
    	  }
         } 
     
        </script> 
       </head> 
     
    	<body Onload="loadxml();"> 
    		<input type="button" name="ok" value="Ok" onclick="ReadXML()"/>
    	</body> 
    	</html>
    Merci d'avance

  2. #2
    Membre confirm�
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2006
    Messages
    65
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Freelance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Par d�faut
    Salut,

    La ligne : xmlDoc.onreadystatechange = readXML;
    cela doit etre xmlDoc.onreadystatechange = ReadXML;

    Signifiant qu'a chaque changement d'etat on appel ReadXML().

    Donc du coup le bouton ne sert a rien.

    Une fois dans ReadXML, on constate que xmlDoc.documentElement = null lorsque l'on rentre dans le if.
    Le document xml n'a peut etre pas �t� charg�.

    Il y a surement une autre facon de faire.

    Dans le bouquin Javascript La R�f�rence d'O'Reilly chapitre 21, il y a exactement ce que tu veux faire.
    Mais ca tiens sur 5 pages...

    Il y a les scripts d'exemple de ce chapitre a cette adresse:
    http://examples.oreilly.com/jscript5/js5examples.zip

    Voir les fichiers
    01 pour creer un nouveau document XML
    02 pour le charger
    07 pour construire un tableau d'apr�s le XML

    Un conseil, si tu ne l'as pas d�j� achete ce bouquin, c'est la Bilble du Javascript.

    Bon courage... Thierry

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    D�tails du profil
    Informations personnelles :
    �ge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par d�faut
    Pas bon c�:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    xmlDoc.documentElement.childNodes [0]. texte
    c'est:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    xmlDoc.documentElement.childNodes[0].text
    Et si tu dois continuer avec du code d�di� � IE je te conseille de parcourir ton arbre en utilisant XPath, ce sera quand m�me plus facile...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    xmlDoc.getElementsByTagName ( "year") [0]. attributes.getNamedItem ( "id"). nodeValue);
     
    //remplacé par:
    xmlDoc.selectSingleNode("//year[1]/@id").nodeValue
    //faire attention aux indices avec msxml... base 0 ou 1, cela dépend des versions de la librairies

    ERE

  4. #4
    Membre averti
    D�veloppeur informatique
    Inscrit en
    Mars 2009
    Messages
    39
    D�tails du profil
    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 39
    Par d�faut Xml et javascript
    Bonjour,et merci encore pour vos r�ponses.
    Je vais revoir mon code comme vous me le conseillez.

    A'd taleur

Discussions similaires

  1. Manipulation fichiers XML avec javascript
    Par michelkey dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 04/12/2014, 15h45
  2. Manipulation XML avec ASP
    Par loic.keysoft dans le forum ASP
    R�ponses: 4
    Dernier message: 16/05/2008, 16h46
  3. incr�menter valeur d'un noeud xml avec javascript
    Par caweb dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 09/01/2008, 09h52
  4. Chargement Fichier XML avec javascript
    Par kaptnkill dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 02/10/2007, 14h22
  5. Lire un xml avec javascript et generer code html ?
    Par zevince dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 04/04/2006, 11h45

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