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 :

Creer un DOMDocument a partir d'une page HTML (XML mal formé)


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 44
    Points
    44
    Par défaut Creer un DOMDocument a partir d'une page HTML (XML mal formé)
    Salut a tous,

    Je bosse sur une extension firefox qui utilise de l'AJAX (XmlHttpRequest) pour obtenir une page web distante. J'aimerais pouvoir parcourir cette page web en tant que document DOM mais j'ai un probleme :

    Certaines pages distantes sont mal formées (la structure XML n'est pas valide) ce qui produit une erreur si j'essaye de récupérer un document XML (var xmldoc = http_request.responseXML; ). Le script se bloque et n'étudie pas la suite du document.

    J'ai cherché du coté des techniques AHAH (Async HTTP and HTML ?) qui consiste a ajouter le contenu de la requête (http_request.responseText) a l'aide de innerHTML, mais (évidemment !), le code ajouté est considéré comme du texte et n'est pas accessible avec le méthode de DOM (getElementById, ...). Cette technique aurait sans doute marché si je l'avais utilisée dans une page affichée dans le navigo mais je ne souhaite pas l'afficher, je souhaite un traitement en tache de fond.

    Comment faire pour pouvoir charger une page HTML qui ne soit pas nécessairement bien formée (le navigateur le fait bien !) ?
    Je précise que je ne veut pas afficher la page mais juste étudier son code et en extraire certaines données.

    Merci d'avance.

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    Je dis ça de mémoire, je n'ai jamais eu besoin de trop me pencher sur le XML, je peux donc me tromper.

    HTML n'est pas du XML. XHTML était censé répondre à cette demande, sa syntaxe nous obligeant à bien former un document. Logiquement tu peux parser un document XHTML sans souci, mais pas HTML.

    Je ne peux te donner que des pistes. Je pense qu'il faudrait que tu crées un document, plutôt que d'y affecter la réponse à la requête, puis que tu injectes la réponse. Regarde du coté de createDocument, DocumentFragment et createDocumentFragment.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 44
    Points
    44
    Par défaut
    Merci de ta réponse !

    En effet, il semble que le xhtml valide passe correctement. Par contre, le problème est que les pages web que je désire étudier ne sont pas les miennes : ce sont des pages distantes dont je n'ai pas le contrôle. Je ne peut donc pas les rendre valides et j'aimerais quand même pouvoir les étudier.

    Le navigateur arrive bien a créer un DOMDocument sans que la structure XML ne soit respectée, je trouve étonnant qu'aucune méthode ne permette d'avoir ce comportement... (Du moins, je m'étonne que mes recherches aient été aussi infructueuses si la méthode existent !)

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,
    Tu n'arriveras pas à parser un document en tant que XML si il est mal formé !
    La solution que je vois serait d'insérer le code récupéré dans une iframe cachée puis d'utiliser les méthodes du DOM dessus.

Discussions similaires

  1. executer perl à partir d une page HTML
    Par blaise4714 dans le forum Web
    Réponses: 1
    Dernier message: 11/01/2008, 09h26
  2. Lancer un logiciel à partir d'une page html
    Par xav20 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 13/11/2007, 20h35
  3. [HTML] Appel d'un programme en C à partir d'une page HTML
    Par paihpaihtte dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/04/2007, 22h33
  4. [HTML] Telechargement d'un fichier à partir d'une page HTML
    Par padraig29 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/11/2006, 15h31
  5. Réponses: 2
    Dernier message: 20/02/2006, 19h51

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