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 :

Parser XML avec Javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    D�cembre 2010
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 9
    Par d�faut Parser XML avec Javascript
    Bonjour tout le monde,

    j'ai un petit probl�me pour parser un fichier XML.
    je m'explique je travail sous JBUILDER sur une page JSP la dont j'ai une fonction en JavaScript qui doit parser un fichier XML pour extraire des valeurs voici ma fonction:
    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
     
    <SCRIPT TYPE="text/javascript" language="Javascript">
     
    var admin ;
    var dbName;
    var port;
     
    function parse()
    {
    var xmlDoc= null;
    xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
    xmlDoc.async=false;
     
    xmlDoc.validateOnParse = true;
    xmlDoc.load("configuration.xml");
    if (xmlDoc.parseError.errorCode != 0)
    {
    alert("Error in line " + xmlDoc.parseError.line +
    " position " + xmlDoc.parseError.linePos +
    "\nError Code: " + xmlDoc.parseError.errorCode +
    "\nError Reason: " + xmlDoc.parseError.reason +
    "Error Line: " + xmlDoc.parseError.srcText);
     
    }
    else
    admin = xmlDoc.getElementsByTagName("admin")[0].childNodes[0].nodeValue;
    document.getElementById('dbName').value = xmlDoc.getElementsByTagName("dbName")[0].childNodes[0].nodeValue;
    alert(document.getElementById('dbName').value);
    document.getElementById('port').value = xmlDoc.getElementsByTagName("port")[0].childNodes[0].nodeValue;
    port = document.getElementById('port').value;
    alert(document.getElementById('port').value);
     
    }
    </SCRIPT>
    le probl�me c'est que j'arrive pas � instancier mon parseur:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
    c'est vous avez des proposition je suis preneur
    merci d'avance

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par d�faut
    Je te conseille de poster sur le forum javascript plut�t, �tant donn� que c'est un probl�me javascript.

  3. #3
    Membre Expert Avatar de alain.couthures
    Profil pro
    G�rant
    Inscrit en
    Avril 2007
    Messages
    902
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : G�rant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par d�faut
    Parser un document XML en Javascript d�pend du moteur utilis� par le navigateur.

    Pour ce qui est d'Internet Explorer, MSXML3 �tait accessible depuis IE6 jusqu'� IE8. IE9, quant � lui, est install� avec MSXML6.

    -Alain

  4. #4
    Mod�rateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Autrement dit, il vaut mieux utiliser jQuery ou assimili�s, quoi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Inscrit en
    D�cembre 2010
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 9
    Par d�faut xml avec javascript
    j'utilise MSXML3 pour IE6.
    j'arrive a parser mon doc XML avec IE6, mais avec JBuilder quand j'ex�cute ma page html l� j'arrive pas a parser mon doc xml.

  6. #6
    Mod�rateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Mais... Qu'est-ce qu'on s'en tape de JBuilder ? Tu parles de parser le XML avec du JavaScript dans IE. C'est du JavaScript, c'est dans IE que �a se passe.
    Le JavaScript pr�sent dans les JSP �dit�es avec JBuilder, c'est exactement le m�me que du JavaScript qui serait ailleurs.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Inscrit en
    D�cembre 2010
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 9
    Par d�faut
    je suis tout a fait d'accord avec toi thelvin mais j'arrive pas a comprendre pourquoi mon javascript dans jbuilder ne parse pas mon doc xml, mais ailleurs il le fait parfaitement.
    c'est ce point que je n'arrive pas � comprendre

  8. #8
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    il est o� ton parseur dans une page web ou sur un autre outil ?

    Que fait jbuilder dans cette histoire ?
    que signifie "mon javascript dans jbuilder ne parse pas mon doc xml" (je le croyais dans IE ???) ?

    Quelle est l'erreur ?
    As-tu une trace d'erreur � nous donner ?
    teste-tu avec la "web view" interne de Jbuilder ?

    jbuilder web view est un navigateur qui comme tout navigateur � sa propre impl�mentation de js et html

    or
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
    n'a absolument rien de standard c'est l'instantiation d'un objet Windows(tm)
    Activex est une technologie purement Microsoft(c) et qui n'est disponible que dans le navigateur IE

    avec firefox il faut faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    xmlDoc=document.implementation.createDocument("","",null);
    xmlDoc.load("configuration.xml");
    mais il y a beaucoup plus simple
    tout navigateur contient d�j� un parser
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <iframe id="xmldocument" style="display:none" src="configuration.xml"></iframe>
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    xmlDoc=getElementById('xmldocument').document;
    admin = xmlDoc.getElementsByTagName("admin")[0].childNodes[0].nodeValue;
    document.getElementById('dbName').value = xmlDoc.getElementsByTagName("dbName")[0].childNodes[0].nodeValue;
    alert(document.getElementById('dbName').value);
    document.getElementById('port').value = xmlDoc.getElementsByTagName("port")[0].childNodes[0].nodeValue;
    port = document.getElementById('port').value;
    alert(document.getElementById('port').value);
    en clair tu mets ton xml dans un ilot ou un iframe
    le navigateur le parse lui-m�me
    et tu parcour le dom pour piocher tes petits
    A+JYT

  9. #9
    Membre du Club
    Inscrit en
    D�cembre 2010
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 9
    Par d�faut xml en javascript
    merci sekaijin pour vous explications, tout d'abord je tiens � pr�ciser que je suis un d�butant c'est pour cette raison des fois je donne des explications pas assez clair.

    pour r�pondre a vous questions:
    -Jbuilder je l'utilise comme un IDE.
    -la signification de "mon javascript dans jbuilder ne parse pas mon doc xml" c'est que avant que je travail sur IDE Jbuilder j'ai cre� une page html avec notePad, dont j'ai integre mon programme Javascript qui me permet de parser un doc xml et recuprer des donn�es et ca fonctionne bien. ensuite j'ai voul� utilis� le meme programme dans ma page html dans IDE Jbuilder mais je ne parse pas le bon document.
    -j'ai met beaucoup de trace(des alert) pour voir si je parce bien et si je r�cupere bien les donn�es souhaites mais je voit bien que mon programme faire rien et ne charge pas bien le doc XML.

    jbuilder web view je le trouve pas est-ce que web Start pourrai faire l'affaire?

    j'esp�re que j'ai � vous questions et merci pour tes explications et pour ton aide.

  10. #10
    Membre du Club
    Inscrit en
    D�cembre 2010
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 9
    Par d�faut
    est-ce que je suis oblige de mettre �a :
    <iframe id="xmldocument" style="display:none" src="configuration.xml"></iframe>
    afin de charger mon document xml, sachant que j'utilise d�j� cette ligne suivante pour le m�me but:
    <link type="text/xml-script" href="jsp/configuration.xml" />

  11. #11
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    dans jbuilder lorsque tu cr�e une page html tu peux ce que �a donnera directement dans jbuilder

    pour �a jbuilder utilise un navigateur � lui
    si tu utilise cette possibilit� de Jbuilder
    tu as deux chose qui change par rapport � un serveur web

    les chemins ne sont pas obligatoirement les m�mes
    la fa�on dont le navigateur interpr�te le code n'est pas la m�me.

    pour ce qui est de link
    link indique au navigateur qu'un document est li�
    la norme HTML pr�voit certain type de link (css par exemple)
    pour tous les type de lien pr�vu le navigateur va faire le n�cessaire

    pour une feuille de style il va lancer l'interpr�te Css et lier le r�sultat � la page.

    pour les types inconnus de lui il ne fait que cr�er un noeud link avec les attribut fournis.

    utiliser un iframe est diff�rent
    c'est dire au navigateur
    cr�� un nouveau document
    r�cup�re le source � l'adresse indiqu�
    parce le
    et affiche le r�sultat

    je pense qu'il te faut lire la norme HTML
    avant de commencer � bricoler ce genre de chose.
    A+JYT

  12. #12
    Membre du Club
    Inscrit en
    D�cembre 2010
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 9
    Par d�faut
    salut sekaijin,
    c'est ce petit d�tail m'a �chappe d'utiliser iframe. mais m�me en utilisant cette m�thode j'arrive toujours pas � r�cup�rer mes donn�es dans le fichier xml. voici mon programme :
    Code html : 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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     
    <HEAD>
    <TITLE></TITLE>
     
    <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <LINK rel="stylesheet" href= "ressources/styleModele.css" type="text/css">
     
     
     
    <!--	<LINK href="images/style.css" type="text/css" rel="stylesheet"> -- >
     
    <SCRIPT language="Javascript" >
    	function handleEnter (field, event) {
            	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
                    if (keyCode == 13)
                    {
                    	document.forms[0].submit();
                            return true;
              	}
                    else {
                    	return true;
                    }
    	}
    //  -->
    </SCRIPT>
     
    <SCRIPT TYPE="text/javascript" language="Javascript">
            
            var admin ;
            var dbName;
            var port;
          
          function parse()
          {
     
            xmlDoc=getElementById('xmldocument').document;
     
                       if (xmlDoc.parseError.errorCode != 0)
                            {
                                    alert("Error in line " + xmlDoc.parseError.line +
                                    " position " + xmlDoc.parseError.linePos +
                                    "\nError Code: " + xmlDoc.parseError.errorCode +
                                    "\nError Reason: " + xmlDoc.parseError.reason +
                                    "Error Line: " + xmlDoc.parseError.srcText);
                                    
                            }
                            else
                            alert('OK');
     
                       //alert(xmlDoc.getElementsByTagName("admin")[0].childNodes[0].nodeValue);
                       admin = xmlDoc.getElementsByTagName("admin")[0].childNodes[0].nodeValue;
                       
                       //alert(xmlDoc.getElementsByTagName("dbName")[0].childNodes[0].nodeValue);
                       //dbName = xmlDoc.getElementsByTagName("dbName")[0].childNodes[0].nodeValue;
               //document.getElementById("dbName").value = bdName;
                       
                       document.getElementById('dbName').value = xmlDoc.getElementsByTagName("dbName")[0].childNodes[0].nodeValue;
                       //dbName = document.getElementById('dbName').value;
                       alert(document.getElementById('dbName').value);
                       document.getElementById('port').value = xmlDoc.getElementsByTagName("port")[0].childNodes[0].nodeValue;
                       port = document.getElementById('port').value;
                       alert(document.getElementById('port').value);
                            
                       //alert(xmlDoc.getElementsByTagName("port")[0].childNodes[0].nodeValue);
                      // port = xmlDoc.getElementsByTagName("port")[0].childNodes[0].nodeValue;
                       
     
     
                       //var admin = xmlDoc.getElementsByTagName("admin")[0].childNodes[0].nodeValue;
     
                       //var port = xmlDoc.getElementById("port").firstChild.nodeValue;
     
          }  
     
    </SCRIPT>
     
    </HEAD>
     
    <BODY marginheight="0" marginwidth="0" onload="document.forms[0].login.focus(); parse();" >
       <iframe id="xmldocument" style="display:none" src="configuration.xml"></iframe>
    	<FORM  id="frmCoodinateurAdminCATTI" name="frmCoodinateurAdminCATTI" action="./servlet/frmCoodinateurAdminCATTI" method="POST" >
            	<P align="center"><IMG height="200" src="images/logo.jpg"  width="600"></P>
                    <TABLE align="center">
                    	<TR>
                            	<TD height="10"></TD>
                            	<TD height="17"></TD>
                      	</TR>
     
                        	<TR>
                            	<TR>
                                    	<TD height="10"><STRONG><FONT size="2">Identifiant</FONT></STRONG></TD>
                                            <TD height="25"><INPUT type="text" name="login" value="cora" size="20"></TD>
                                	</TR>
     
                                	<TR>
                                    	<TD height="20"><STRONG><FONT size="2">Mot de passe</FONT></STRONG></TD>
                                            <TD height="25"><INPUT type="password" name="password" value="cora" size="20"></TD>
                            	</TR>
     
                              	<TR>
                                            <TD height="2"><STRONG><FONT size="2">Host</FONT></STRONG></TD>
                                            <TD height="25"><INPUT type="text" name="host" value="172.29.72.102" size="20"></TD>
                              	</TR>
     
                                  	<TR>
                                            <TD height="2"></TD>
                                            <TD height="50"><INPUT type="submit" value="Valider" onclick="javascript:fcValider('CONNECT');"></TD>
                              	</TR>
    <!-- 29/11/06 Start Add by LBA -->
    			</TR>
    <!-- 29/11/06 End Add by LBA -->
     
    		</TABLE>
     
                    <INPUT type="hidden" name="ACTION" id="ACTION" value="">
                    <INPUT type="hidden" name="dbName" id="dbName" value="dbName">
                    <INPUT type="hidden" name="port"   id="port" value="port">
     
          	</FORM>
     
     
    </BODY>
     
     
    </HTML>

    sachant que dans mon fichier configuration.xml j'ai que trois param�tres � r�cup�rer pour l instant.

  13. #13
    Membre du Club
    Inscrit en
    D�cembre 2010
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 9
    Par d�faut
    bonjour sekaijin,
    j'ai une derniere question a vous poser � propos de la position iframe, je doit la position avant mon programme javascript ou apres
    <iframe id="xmldocument" style="display:none" src="configuration.xml"></iframe>

  14. #14
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    il faut que le contenu soit charg� avant sont traitement

  15. #15
    Membre du Club
    Inscrit en
    D�cembre 2010
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 9
    Par d�faut
    donc je la mettrais apr�s la balise <body> comme dans le programme au-dessus

Discussions similaires

  1. 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
  2. Chargement Fichier XML avec javascript
    Par kaptnkill dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 02/10/2007, 14h22
  3. parser xml avec linux
    Par nemya dans le forum XML/XSL et SOAP
    R�ponses: 2
    Dernier message: 06/04/2006, 10h49
  4. 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
  5. [XML] [EXPAT] Parser XML avec PHP
    Par glsn dans le forum Biblioth�ques et frameworks
    R�ponses: 8
    Dernier message: 20/12/2005, 12h29

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