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

Composants VCL Delphi Discussion :

[XML] ChildNodes: différencier si balise vide ou inexistante


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut [XML] ChildNodes: différencier si balise vide ou inexistante
    Hello,

    Pour récupérer des valeurs d'un fichier XML, j'utilise la fonction ChildNodes. Cependant j'ai remarqué que la fonction me retourne NULL dans 2 cas :
    - Lorsque la balise cherchée n'existe pas
    - Lorsque la balise existe mais ne contient rien (<balise></balise>)

    Est-il possible de différencier ces cas ? Comment savoir si la balise est vide ou si elle est inexistante ? :

  2. #2
    rbh
    rbh est déconnecté
    Membre chevronné Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Par défaut
    Salut
    Il existe la méthode "HasAttribute(nom: string): boolean;"
    Je l'ai trouvé grâce à

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut
    C'est très bien, sauf que je ne m'intéresse pas à savoir si la balise a un attribut, mais si elle contient une valeur, ce qui n'est pas vraiment la même chose

    "<balise name='test'>texte de ma balise</balise>" -> name étant l'attribut de la balise.

    D'ailleurs en utilisant F1 comme tu l'as fait, tu aurais dû remarquer que la fonction hasAttributes prend un paramètre de type String pour le nom de l'attribut à chercher

  4. #4
    rbh
    rbh est déconnecté
    Membre chevronné Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Par défaut
    Excuse moi, je n'ai pas pris le temps de bien lire ta question.
    Par contre en continuant mon exploration de l'aide, j'ai trouvé une différence entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChildNodes(.Nodes)['balise']
    qui selon mon aide delphi (D7) déclenche une exception si le noeud n'existe pas et si il ne peut pas le créer (si le ChildNodes contient doNodeAutoCreate dans sa propriété Options).
    Alors que la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChildNodes.FindNode('balise')
    renvoie nil si elle ne trouve rien.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut
    Effectivement la fonction FindNode retourne nil si elle ne trouve pas le noeud, et met le résultat à NULL si celui-ci est vide. Ceci va me permettre de différencier les 2 cas.

    Merci pour ton aide.

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

Discussions similaires

  1. XML+balise vide à compléter
    Par toMuch dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 29/09/2010, 10h18
  2. TO XML (Balise vide)
    Par ricil78 dans le forum Linq
    Réponses: 2
    Dernier message: 28/11/2008, 15h28
  3. balise vide avec dom xml
    Par newcodeur dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/08/2008, 16h59
  4. [XML] Ne pas afficher les balises vides
    Par ludo.guy dans le forum Reports
    Réponses: 0
    Dernier message: 03/10/2007, 12h01
  5. [XML] export, afficher balises vides
    Par peter2587 dans le forum VBA Access
    Réponses: 6
    Dernier message: 04/06/2007, 18h00

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