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

Langage Delphi Discussion :

Problème de lecture dans un fichier xml


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 19
    Points : 21
    Points
    21
    Par défaut Problème de lecture dans un fichier xml
    J'ai un problème lors du parsing d'un fichier xml dans mon programme (un feed rss provenant d'un site).

    Jusqu'ici, je recupérais le titre dans la balise title de chaque element et je la placais dans un string :

    STitle := ANode.ChildNodes['title'].Text;

    Le problème, c'est que cette balise title peut contenir des balises de formatage html.
    Je ne sais pas si c'est valide ou pas, mais en tout cas les autres parseurs xml la lise quand même, alors je odis me demmerder pour le faire.

    Exemple de titre invalide :

    <title>Nouveau site EA <s>Games</s></title>

    Le s de formatage gène à la lecture, le composant xml de delphi me sort l'erreur suivante :



    Je ne peux pas nettoyer la chaine puisque je ne peux pas la récuperer (l'erreur se fait à l'affectation du contenu dans le string), et je ne peux pas tout virer dans le xml puisqu'il peut y avoir TOUT les tags de html possibles en fait ...

    Ce dont j'aurai besoin ,c'est d'une méthode pour chopper tout ce qu'il y a entre les balises title.

    Et en fait, tout seul, je trouve pas, donc si vous pouviez me filer un coup de pouce ..

    Merci d'avance

  2. #2
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    A première vue, ton erreur est due au fait que tu essaie de lire la valeur textuelle du noeud <title>. Or, ton noeud <title> contient un élément enfant <s>.
    Donc, tu devrais faire quelque chôse du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if Anode.ChildNodes['title'].HasChildNodes then
      sTitle := ANode.ChildNodes['title'].ChildNodes[0].Text;
    Maintenant, je crois que tu aurais plus facile en utilisant une requête XPath de ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //title/descendant-or-self::*/text()
    Tiens-moi au courant

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Je réussi à récupérer tout le contenu.

    Me reste plus qu'à trouver un moyen de faire un chercher remplacer avec regexp ...

Discussions similaires

  1. Problème de lecture dans un fichier texte.
    Par Mike888 dans le forum C
    Réponses: 3
    Dernier message: 24/05/2007, 12h45
  2. problème de lecture dans un fichier
    Par phy4me dans le forum Fortran
    Réponses: 1
    Dernier message: 20/05/2007, 21h55
  3. Problème de lecture d'un fichier XML d'InfoPath
    Par snadus dans le forum InfoPath
    Réponses: 7
    Dernier message: 06/06/2006, 15h45
  4. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 03h28
  5. Réponses: 2
    Dernier message: 01/06/2004, 13h47

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