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 :

[JScript][XML] Parcourir un flux XML obtenu par XmlHttpRequest


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut [JScript][XML] Parcourir un flux XML obtenu par XmlHttpRequest
    Bonjour à tous.

    Avant toute chose, je souhaite vous prévenir que j'ai fait des centaines de tests, parcourus d'inombrables pages internet à la recherche d'une solution... mais que malgré tout je suis tjrs bloqué sur le même point.

    Il s'agit de parcourir un flux XML récupéré par XmlHttpRequest, pour tester l'existence de tel ou tel noeud.

    Tout d'abord, voici un extrait du flux XML récupéré (tree):

    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
     
    <?xml version="1.0" encoding="utf-8" ?> 
    - <root>
    - <page id="cate_b">
      <intro9zones value="false" /> 
      </page>
    + <category name="FEMME" id="femme" zid="femme">
    + <childCategories>
    + <category name="Sacs" id="cat10070" zid="femme_sacs">
    + <childCategories>
    - <category name="CHOISISSEZ VOTRE LIGNE">
    - <childCategories>
    - <category name="Canvas Mono" id="cat10071" zid="femme_sacs_canvas_mono">
      <image url="/images/categories/femme_sacs_canvas_mono.jpg" /> 
      </category>

    Je voudrais déjà en terme de test, pouvoir vérifier l'existence de noeuds identifiés par "category".


    Mon code:

    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
    
    function traitement(){
    
    var xhr = getXhr();
    
    
    // On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
    	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200){
    			
                    // ICI que dois-je écrire pour faire mon test sur le flux XML xhr?
    		
    		}
            }	
    
    // requete 
    
    xhr.open("POST",url,true);
    xhr.send(null);
    
    }	
    
    
    
    function getXhr()
    {
    var xhr = null; 
    	 
    	if(window.XMLHttpRequest) // Firefox et autres
    	   xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject){ // Internet Explorer 
    	   try {
                    xhr = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
    	}
    	else { // XMLHttpRequest non supporté par le navigateur 
    	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	   xhr = false; 
    	}
    
     return xhr;
    }

    Je ne parviens pas à trouver une méthode qui fonctionne basée sur AJAX ou DOM, pour travailler à partir de mon XHR....


    Merci de m'apporter un coup de main !

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    grosso modo :

    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(xhr.readyState == 4 && xhr.status == 200){
     
                    // ICI que dois-je écrire pour faire mon test sur le flux XML xhr?
    		var xml=xhr.responseXML;
    // ensuite : parcourir le fichier xml, comme le DOM : 
    for (var i=0; i<xml.getElementsByTagName("category").length; i++)
    {
    alert(xml.getElementsByTagName("category")[i].getAttribute("zid"));
    /// etc ...
    }
    		}

    Cordialement
    roro


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    Salut c'est encore moi

    J'ai une question par rapport à ce que tu proposes et que j'ai complété grâce à une doc que l'on m'a fait parvenir (Beginning XML with DOM and Ajax, Apress).

    Est-ce un problème si la page de mon script lançée en local fait appel à une requête (donc la récupération d'un flux XML) sur un serveur distant ?

    Voici mon code :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    	<html>
    	<head>
    	<title>Get XML test page</title>
    	<style>
    	//some style declarations left out for brevity
    	</style>
     
    	<script type="text/javascript">
    	var xmlhttp=null;
    	var strOutput ="";
    	var toLoad = "http://my_server.fr/categories_b.jsp;jsessionid=OC0MVZ?langue=fr%5FFR&buy=1&uniqueid=OC0MVZ";
     
     
    	function sendRequest(){
    	if (window.XMLHttpRequest){
    	xmlhttp=new XMLHttpRequest();
    	}
    	else if (window.ActiveXObject){
    	try {
    	xmlhttp= new ActiveXObject("Msxml2.XMLHTTP");
    	} catch(e) {
    	try {
    	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    	} catch(e) {
    	xmlhttp = false;
    	}
    	}
    	}
    	if (xmlhttp){
    	xmlhttp.onreadystatechange=onReadyState;
    	// xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');        -> POST
    	xmlhttp.open("GET", toLoad, true);
    	xmlhttp.setRequestHeader('Content-Type', 'text/xml'); 
    	xmlhttp.send(null);
    	}
    	}
     
     
    	function onReadyState(){
    	if (xmlhttp.readyState==4){
    	if (xmlhttp.status==200) {
     
    		var xmlDoc = xmlhttp.responseXML;
    		var rep_list = xmlDoc.getElementsByTagName("category");
    		for (var i=0; i < rep_list.length; i++) {
    		strOutput += rep_list[i].firstChild.nodeValue + "<br/>";
    		}
    		document.getElementById('divContent').innerHTML=strOutput;
    	}
    	}
    	}
     
     
    	function doReplace(strXML) {
    	var strOut = "";
    	var strL = /</g;
    	var strG = />/g;
    	var strAmp = /&/g;
    	strOut = strXML;
    	strOut = strOut.replace(strAmp, "&amp;");
    	strOut = strOut.replace(strL, "&lt;");
    	strOut = strOut.replace(strG, "&gt;");
    	return strOut;
    	}
     
     
    	</script>
    	</head>
    	<body onload="sendRequest()">
    	<div class="divStyle" id="divContent" >Loading...</div>
    	</body>
    	</html>

    Donc comme vous le constatez, j'utilise l'objet xmlhttp et je récupère le XML de la page du serveur par l'objet responseXML.


    Résultat:
    ma page .html chargeant le script est vide.
    A noter que si je récupère le texte en brut via responseText, j'ai bien le contenu du document chargé par le script.
    Dans la mesure du possible, je souhaiterais passer par responseXML.



    Any suggestions?

  4. #4
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Perso, je conserve :
    setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1")


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    ah lala.... si ca pouvait être ca!


    non, malheureusement ca n'est pas plus concluant. Ou alors j'envoie le setRequestHeader() au mauvais moment? Dans les sources que j'ai citées plus haut, cette instruction est envoyée entre le xmlhttp.open() et xmlhttp.send().



  6. #6
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    "Normalement", et autant que je sache, il n'est pas possible d'appeler une page sur un autre domaine (en ajax), pour des raisons de sécurité. Cela signifie, en clair, que si tu veux appeler ta page http://my_server.fr/categories_b.jsp depuis la page cliente, cette page cliente doit elle-même avoir été envoyée par le serveur http://my_server.fr


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    c'est bien de ca que j'ai peur...

    Dans mon cas, il n'est pas envisageable d'héberger mes pages appelantes sur le serveur.


    Pour faire le point d'où j'en suis:

    1. je peux récupérer le flux XML en "brut" via XmlHttpRequest.responseText. Sachant que celui-ci n'est pas formaté et limite le traitement concernant le parcours du contenu (pas possible de parler de node, child, sibling, etc).

    2. le JScript ne permet pas de créer et écrire dans un fichier en local (machine client), donc je ne peux pas sauvegarder ce flux dans un fichier texte par exemple. Ce qui est une seconde limite.

    3. je ne parviens pas à récupérer le fichier XML distant (réponse de ma requête envoyée au serveur) par XmlHttpRequest.responseXML.


    Est-ce que les JSONs peuvent-être une solution à ce que je souhaite faire (i.e récupérer un XML, pouvoir le parser/parcourir, ou sauvegarder un flux XML dans un fichier en local) ?



    J'attends vos éléments de réponse avec intérêt.
    Merci.

  8. #8
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Si la reponse text est obtenue, je ne vois pas pourquoi la même réponse XML ne le serait pas. La réponse envoyée par le serveur doit être du type MIME "text/XML" pour qu'un objet xml puisse ensuite être parsée côté client, ce n'est sans doute pas le cas. (J'insiste bien sur le vocable "objet XML").
    Une aide : j'utilise Firefox + firebug (plugin gratuit) qui permet de visualiser en temps-réel les appels ajax. Ils permettent aussi de visualiser les headers de la réponse. A utiliser sans modération


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    Bien, tu ne me laisses d'autre choix que de te montrer mon code!

    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
     
    function sendRequest(){
    	if (window.XMLHttpRequest){
    	xmlhttp=new XMLHttpRequest();
    	}
    	else if (window.ActiveXObject){
    	       try {
    	                 xmlhttp= new ActiveXObject("Msxml2.XMLHTTP");
    	            } catch(e) {
    	                               try {
    	                                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     	                                    } catch(e) {
    	                                                   xmlhttp = false;
    	                                                   }
    	                           }
    	}
     
            if (xmlhttp){
    	      xmlhttp.onreadystatechange=onReadyState;
    	      xmlhttp.open("GET", toLoad, true);
    	      xmlhttp.setRequestHeader('Content-Type', 'text/xml'); 
    	      xmlhttp.send(null);
    	}
    }
     
     
    	function onReadyState(){
    	if (xmlhttp.readyState==4){
    	if (xmlhttp.status==200) {
     
    		var xmlDoc = xmlhttp.responseXML;
    		var rep_list = xmlDoc.getElementsByTagName("category");
    		for (var i=0; i < rep_list.length; i++) {
    		strOutput += rep_list[i].firstChild.nodeValue + "<br/>";
    		}
    		document.getElementById('divContent').innerHTML=strOutput;
    	}
    	}
    	}

    Je vais de ce pas installer firebug et relancer le script. je te tiens au courant!

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    Donc déjà j'obtiens une erreur sous Firefox :
    uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open

    Je tiens à préciser qu'à cause de cette erreur j'effectue tous mes tests sous IE.
    Et il semble bien qu'on en revienne tjrs à la même chose, à savoir que Firefox n'autorise pas l'envoie de requête XMLHttpRequest depuis un fichier distant (de local à serveur).

    Hem........ c'est le serpent qui se mord la queue...

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    AJAX - Beginning XML with DOM and Ajax, Apress

    For security reasons, you can’t use Ajax to request content from a domain outside of the current one. This is
    referred to as the Ajax sandbox. If you’re running the web page on http://www.apress.com, you can only
    request from that domain.

  12. #12
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Firefox permet bien l'envoi de requêtes asynchrones par le biais de XMLHttpRequest , de client à serveur (c'est même la raison d'être de cet objet), mais dans les conditions déjà citée. Je ne crois pas qu'avec IE ce soit différend.
    Mais changer de navigateur, pour ne plus voir une erreur, c'est comme s'enfouir la tête dans le sable pour ne pas voir un danger : on ne la voit plus, mais elle est bel et bien présente.


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  13. #13
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Ton dernier message (#11) qui a croisé le mien corrobore ce que je disais


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par roro06
    Firefox permet bien l'envoi de requêtes asynchrones par le biais de XMLHttpRequest , de client à serveur (c'est même la raison d'être de cet objet), mais dans les conditions déjà citée. Je ne crois pas qu'avec IE ce soit différend.
    Mais changer de navigateur, pour ne plus voir une erreur, c'est comme s'enfouir la tête dans le sable pour ne pas voir un danger : on ne la voit plus, mais elle est bel et bien présente.
    Je ne comprends pas. De quelles conditions parles-tu ?
    L'article dont j'ai cité un extrait fait état de l'impossibilité de traiter une requête si envoyée depuis un domaine extérieur.

    Autrement dit, le client fait appel au script, mais ce script doit être hébergé sur le serveur, qui envoie la requête, et le serveur peut aller renvoyer les réponses au client à l'origine de l'appel de la requête.

    Or je ne peux pas compter sur la création de cette étape "intermédiaire" par le biais du serveur (politique de sécurité de l'entreprise!).

  15. #15
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Je me cite :
    "il n'est pas possible d'appeler une page sur un autre domaine (en ajax), pour des raisons de sécurité."

    Je te cite : "l'impossibilité de traiter une requête si envoyée depuis un domaine extérieur."

    C'est kif-kif


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    j'ai plutôt lu ca de ton dernier message:

    Firefox permet bien l'envoi de requêtes asynchrones par le biais de XMLHttpRequest , de client à serveur
    c'est sur celà que je réagissais et que je tenais à apporter plus de précision.

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    En fait, je suis en train de me demander si je fais bien la bonne utilisation de la méthode document.getElementById() pour le parcours de document.responseText/XML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var xmlDoc = xmlhttp.responseXML;
    		var rep_list = xmlDoc.getElementsByTagName("category");
    		for (var i=0; i < rep_list.length; i++) {
    		strOutput += rep_list[i].firstChild.nodeValue + "<br/>";
    		}
    		document.getElementById('divContent').innerHTML=strOutput;

    A quel identification de champ le paramètre de getElementById() correspond-il ?
    Est-ce bien le nom des balises xml présentes dans responseText ?

    Si vous vous rappelez de mon exemple de flux xml retourné:
    <category name="femme" ...>

    est ce que si je cherche les balises "category", cet appel est bon:
    document.getElementById("category");


    Impossible de mettre la main sur le MAN de la fonction sur google! arf.

  18. #18
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    document.getElementById() adresse un élément du document connu par son id et compris entre les balises <body> et </body> de ta page html. Ainsi document.getElementById("unid") s'adresse à
    <element id="unid">.
    element pouvant représenter pratiquement n'importe quelle balise html (input, table, td, button, div etc ...)


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Points : 28
    Points
    28
    Par défaut
    Ok.

    y a t'il moyen de faire une recherche (sur le responseText) de l'existence de texte en "brut" alors, pour que je recherche des chaînes du type "<nom_du_tag>" ???

  20. #20
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    oui, la méthode search de l'objet String
    responseText.search(/<nom_du_tag/) retourne -1 si pas trouvé


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

Discussions similaires

  1. Flux XML généré par le script PHP incomplet
    Par L.nico dans le forum Langage
    Réponses: 1
    Dernier message: 29/06/2008, 15h27
  2. Flux XML par HttpHandler
    Par humaneko dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/01/2008, 10h22
  3. Réponses: 2
    Dernier message: 06/07/2006, 08h47
  4. Réception flux XML posté par fsockopen
    Par salimi dans le forum Langage
    Réponses: 3
    Dernier message: 22/05/2006, 10h01

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