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 :

[Ajax] [HTML] [DOM] Parser du Html (texte) en Html DOM ou en DOM


Sujet :

JavaScript

  1. #1
    Membre �m�rite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    D�tails du profil
    Informations personnelles :
    �ge : 52
    Localisation : France

    Informations professionnelles :
    Activit� : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par d�faut [Ajax] [HTML] [DOM] Parser du Html (texte) en Html DOM ou en DOM
    Bonjour.

    Je suis en train de d�velopper une petite librairie Ajax et je voudrais pour se faire pouvoir transformer du HTML (sous forme de texte) en DOM Html.

    Donc j'ai un �l�ment Ajax qui appelle une url. Cette URL me renvoie une page JSP, donc HTML. Dans mon objet Ajax je r�cup�re ce retour, j'aimerai alors pouvoir r�cup�rer une partie de ce retour (limit� par un div par exemple ou �ventuellement une balise xml) et coller coller cette partie de dans ma page courante (pour mette � jour de fa�on asynchrone des �l�ments loudrs de ma page).

    J'ai opt� pour une solution qui consiterait � d�couper le retour avec un substr et en pla�ant des marqueurs, mais c'est une soltuion qui ne me plait pas trop.

    J'aimerai donc parser ce HTML en DOM ou DOM Html. L'id�al serait de pourvoir faire un getElementById sur le DOM et ensuite coller ce sous-�l�ment dans un div cible de ma page (avec un appendChild par exemple).

    J'ai essay� la ruse suivante:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var htmlText = ...;
    var tempDiv = document.createElement('div');
    var docFrag = document.createDocumentFragment();
     
    tempDiv.innerHTML = htmlText ;
     
    while (tempDiv.firstChild) {
        docFrag.appendChild(tempDiv.firstChild);
    }
     
    return docFrag;
    mais �a me me satisfait pas : � cause du innerHTML et aussi que je ne peux pas faire de getElementById sur mon docFrag pour r�cup�rer le fils qui m'int�resse.

    Si quelqu'un � des �l�ments ou id�es qu'il n'h�site pas � m'en faire part.

    Merci pour toute information.
    TK

  2. #2
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    Salut, tout d�pend sous quel format tu r�cup�res tes donn�es , mais effectivement en xml ce serait plus pratique a parser exemple :

    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
     
        <script type="text/javascript">
    //<![CDATA[
          var xmlDoc = "";
        function importXML()
        {
            if (document.implementation && document.implementation.createDocument)
            {
                    xmlDoc = document.implementation.createDocument("", "", null);
                    xmlDoc.async=false;
                    xmlDoc.load("gabarit.xml");
            }
            else if (window.ActiveXObject)
            {
             xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
               xmlDoc.async=false;
               xmlDoc.load("gabarit.xml");
               if (xmlDoc.parseError.errorCode != 0)
                          alert("Error loading XML file : " + xmlDoc.parseError.reason);
                    else{}
                          //alert (xmlDoc.xml);
            }
            else
            {
                    alert('Your browser can\'t handle this script');
                    return;
            }
          getVersion();
        }
     
        function getVersion(){
          test = arborescence(xmlDoc.getElementsByTagName('galeries')[0]);
          //document.getElementById('final').innerHTML =  test;
        }
     
        function arborescence(items){
              temp = "";
              listeGalerie = items.getElementsByTagName('galerie');
              for(var x  = 0 ; x < listeGalerie.length ; x++){
                temp += 'nom : ' + listeGalerie[x].nodeName + '<br />';
                idGalerie = (listeGalerie[x].getElementsByTagName('id')[0].textContent) ? listeGalerie[x].getElementsByTagName('id')[0].textContent:listeGalerie[x].getElementsByTagName('id')[0].text;
                temp += 'id : ' + idGalerie+ '<br />';
                var listImages = listeGalerie[x].getElementsByTagName('image');
                temp += 'Nb Images : ' + listImages.length +'<br />';
              }
              var final = tagName(items);
              document.getElementById('final').innerHTML =  (final);
              return temp;
        }
     
        function tagName(items){
          var temp = '';
          items = items.childNodes;
            for(var i = 0; i < items.length ; i++){
                if(items[i].nodeType != 1) continue;
                valeur = (items[i].textContent) ? items[i].textContent:items[i].text;
                valeur = (items[i].childNodes.length > 1) ? 'parent':valeur;
                temp += items[i].nodeName + ' Valeur : '+valeur+'<br />' ;
                temp += tagName(items[i]);
            }
          return temp;
        }
        //]]>
        </script>
    Le script est assez simple a comprendre il me sert a parser un doc xml assez simple :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <galeries>
      <galerie>
        <id>1</id>
        <description>
          <titre>première galerie</titre>
          <auteur>moi</auteur>
          <dateCreation>26/10/2007</dateCreation>
          <theme>animaux</theme>
        </description>
        <images>
          <image>
            <id>1</id>
            <link>blabla</link>
            <description>de l'image</description>
            <taille h="120" w="150" />
            <poid>200ko</poid>
          </image>
          <image>
            <id>2</id>
            <link>blabla</link>
            <description>de l'image</description>
            <taille h="120" w="150" />
            <poid>200ko</poid>
          </image>
            <image>
            <id>3</id>
            <link>blabla</link>
            <description>superbe</description>
            <taille h="120" w="150" />
            <poid>200ko</poid>
          </image>
        </images>
      </galerie>
      <galerie>
        <id>69</id>
        <description>
          <titre>première galerie</titre>
          <auteur>moi</auteur>
          <dateCreation>26/10/2007</dateCreation>
          <theme>animaux</theme>
        </description>
        <images>
          <image>
            <id>1</id>
            <link>blabla</link>
            <description>de l'image</description>
            <taille h="120" w="150" />
            <poid>200ko</poid>
          </image>
          <image>
            <id>2</id>
            <link>blabla</link>
            <description>de l'image</description>
            <taille h="120" w="150" />
            <poid>200ko</poid>
          </image>
        </images>
      </galerie>
    </galeries>

    voila bon courage pour la suite

  3. #3
    Membre �m�rite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    D�tails du profil
    Informations personnelles :
    �ge : 52
    Localisation : France

    Informations professionnelles :
    Activit� : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par d�faut
    Oui mais je ne peux pas faire autrement que de r�cup�rer du HTML, car je r�cup�re le contenu d'une JSP donc d'une page HTML...

    Il faut que je parse du HTML.

Discussions similaires

  1. [simple html dom] Parser les premiers blocs d'une source html
    Par Marmotton76 dans le forum Biblioth�ques et frameworks
    R�ponses: 0
    Dernier message: 21/09/2014, 09h17
  2. Parser une page HTML avec Simple html dom parser
    Par thelover2fr dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 3
    Dernier message: 24/05/2012, 13h26
  3. PHP Simple HTML DOM Parser
    Par almoha dans le forum Langage
    R�ponses: 11
    Dernier message: 02/03/2012, 21h40
  4. [AJAX] Parser du Html (texte) en Html Dm.
    Par thibaut dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 03/12/2007, 16h34
  5. [Parser HTML] quel parser utiliser pour du HTML 4.0 ?
    Par Cyber@l dans le forum API standards et tierces
    R�ponses: 5
    Dernier message: 19/07/2004, 19h32

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