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

Bases de données Delphi Discussion :

Problème avec format de xml particulier au niveau des valeurs


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut Problème avec format de xml particulier au niveau des valeurs
    Bonjour, je dois construire une interface avec une autre application qui me fournit des fichiers xml en entrée et ces derniers ont un format bizarre que je n'arrive pas à exploiter.
    Pour info voici les 2 versions avec en premier celle que j'arrive à lire avec le composant posé sur ma fiche et en deuxième celle qui ne me fournit aucune donnée exploitable
    Merci d'avance pour votre aide

    <NumEcheance V="10"/>

    <NumEcheance>10</NumEcheance>

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Quel est ton code?
    L'un correspond à Attributes['V']
    L'autre à NodeValue
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Je les attaque par la propriété Text du noeud. Je plante si j'essaie d'utiliser une autre genre NodeValue ...

    Mais j'ai peut-être tout faux au niveau de l'accès déjà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Entrant := SelectSingleNode('//IdPost');
            if Entrant <> nil
             then
              Codiq.Caption := Entrant.text;

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Citation Envoyé par Evangeline Voir le message
    <NumEcheance V="10"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...ChildNodes['NumEcheance'].Attributes['V'];
    Citation Envoyé par Evangeline Voir le message
    <NumEcheance>10</NumEcheance>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...ChildNodes['NumEcheance'].Text;

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Mais encore ? Désolé de ne pas tout comprendre (pourtant je ne suis pas blonde) ...

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Citation Envoyé par Evangeline Voir le message
    Désolé de ne pas tout comprendre
    Le plus simple serait peut être de nous dire ce que tu ne comprends pas et éventuellement de nous donner un exemple de fichier, de nous dire ce que renvoi SelectSingleNode, etc.

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    C'est peut-être tordu et ça mérite surement d’être simplifié mais le code suivant fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            Entrant := SelectSingleNode('//IdPost');
            if Entrant <> nil
             then
              Attrib := Entrant.attributes.getNamedItem('V');
              if Attrib <> nil
               then
                Codiq.Caption := Attrib.text;

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    J'ai parlé trop vite car je coince encore lorsqu'il s'agit de traiter une liste de noeuds identiques. Au final l'affichage est toujours le même ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
             Noeuds := SelectNodes('//LigneAmortissement');
             for i:=0 to Noeuds.length-1
              do
               begin
                Suivant:= Noeuds.item[i].selectSingleNode('//NumEcheance');
                Attrib := Suivant.attributes.getNamedItem('V');
                NextNoeud := Noeuds.item[i].selectSingleNode('//DtePecMandat');
                NextAttrib := NextNoeud.attributes.getNamedItem('V');
                if Attrib <> nil
                 then
                  Memo2.Lines.Add('Numéro :' + Attrib.text + '  Date PEC :' + NextAttrib.text);
               end;

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Désolée pour la présentation bancale et merci pour le coup de main. Par contre personne ne sait résoudre mon problème de boucle sur les noeuds ?

  10. #10
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Le problème ne serait pas dans tes requêtes XPath?
    Du genre /NumEcheance au lieu de //NumEcheance
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Euréka ! La solution était là : http://www.developpez.net/forums/d32...tion-nodelist/ et tu n'étais pas loin puisqu'il fallait rajouter un point devant le /

    Merci à tous pour votre aide

    Kiss

Discussions similaires

  1. [AJAX] Réponse XML
    Par sylsau dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/12/2006, 23h50
  2. Problème avec validator-rules.xml
    Par steffy_29 dans le forum Struts 1
    Réponses: 1
    Dernier message: 08/12/2006, 10h51
  3. problème avec un fichier xml
    Par jeanfrancois dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 05/10/2006, 15h56
  4. [FLASH MX2004] Problème avec un datagrid & xml
    Par cedonline dans le forum Flash
    Réponses: 72
    Dernier message: 15/11/2005, 15h21
  5. Problème avec le parser XML
    Par sheura dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 09/11/2005, 18h26

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