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

Delphi Discussion :

Décoder les entités HTML d'une chaîne de caractères


Sujet :

Delphi

  1. #1
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut Décoder les entités HTML d'une chaîne de caractères
    Salut à tous.

    J'ai une question certainement toute bête, mais ayant trop la tête dans le guidon en ce moment, je sais plus ou chercher.

    Je lit un fichier XML et pour la valeur d'un des noeuds, je récupère un texte sous la forme (il est enregistré tel quel dans le fichier xml) :
    <bibi><bubu toto=" " titi="1" tata="1" youpi="01" etc..../></bibi>
    JE sais que cette valeur texte est elle-même un formatage XML et je dois récupérer certains attributs de certains nœuds seulement.

    Plutôt que de me parser le texte à la main avec de vulgaire recherche de string, comment re-interpréter (convertir?) ce texte en xml ?

    PS: Je suis sous Delphi 2010 et si ça peut aider, pour lire le xml, j'utilise la librairie nativeXML plutôt que les classes de base de Delphi.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 628
    Points : 10 553
    Points
    10 553
    Par défaut
    C'est une "transformation" normale : Is there a Delphi standard function for escaping HTML?

    Le terme technique est "[un]escape characters"

    Regarde wiki pour une liste assez complète

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Ok, donc à priori ya pas de fonctions toutes faites dans une classe xml ou html, faut se la faire soi-même.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    La réponse de fœtus n'indiquait pas qu'il n'y avait pas de fonction mais que c'était l'encodage des caractères spéciaux du HTML et donc la fonction avait un nom évident : HTMLDecode

    Avec un IXMLDocument, la chaine décode est acceptée, je te laisse voir avec le NativeXML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var
      doc: IXMLDocument;
      toto: string;
    begin
      doc := Xml.XMLDoc.TXMLDocument.Create(nil);
      try
        doc.LoadFromXML((*Web.*)HTTPApp.HTMLDecode('<bibi><bubu toto=" égale zéro " titi="1" tata="1" youpi="01"> Salut ! </bubu></bibi>'));
        toto := doc.ChildNodes.Nodes['bibi'].ChildNodes.Nodes['bubu'].Attributes['toto'];
        ShowMessage(toto);
      finally
        doc := nil;
      end;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Ok, d'accord. Avec le lien donné de SO, j'avais compris qu'il fallait que je fasse la fonction moi-même.

    Bon, j'avais pas trop lu non plus, parce que je comptais arriver à ce point là ce matin, mais comme toujours, comme il y a encore plus urgent que l'extrêmement urgent et déjà largement en retard je suis entre-temps, passé sur tout autre chose.

    Merci, pour l'aide.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/07/2007, 14h11
  2. Réponses: 2
    Dernier message: 26/04/2007, 18h17
  3. Réponses: 2
    Dernier message: 02/02/2007, 20h38
  4. [VBA-E]Text "(2)" interprété comme -2
    Par Mymi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/01/2007, 19h28
  5. [SAX] Lire une chaîne de caractères comme un XML
    Par Le Furet dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 23/01/2006, 08h57

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