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

WinDev Discussion :

XML nom de l'attribut


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut XML nom de l'attribut
    Bonjour,
    je dois contrôler un fichier XML avec windev voici une partie de mon fichier xml:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Root><ResolveData Classification="7d91o4mc7-8d6c-4d3d-a0bc-f882ffbcfd12"></ResolveData><ResolveData Classification="7d9c77-8d6c-4d3d-a0-f885bcfd"></ResolveData><box_51001 ADAM_box="{ &quot;type&quot; : &quot;box&quot;, &quot;content&quot; : &quot;class&quot; , &quot;place&quot; : &quot;default&quot; }" Classification="2ffbcfd12"><class_51002></class_51002></box_51001>
    <ResolveData Image=""></ResolveData>
    </Root>
    je dois trouver le guid des attributs "Classification" ça je c faire, ensuite je dois trouver les guid de "Image" le guid image est = "" la il me met 4 réponse avec guid vide.
    voici une partie du code windev :
    TANTQUE XMLTrouve("docxml")
    //Test le type d'éléments trouvé
    SI XMLTypeElement("docxml")=XMLBalise ALORS
    // On l'ajoute dans la basse.
    sGuidcaract = XMLDonnée("docxml", gsAttribut_xml,XMLExact)
    sCoteerreur = XMLNomElément("docxml")
    Valeur = XMLExécuteXPath("docxml",gsAttribut_xml)
    // Lecture de l'élément "Classification"
    SI VérifieExpressionRégulière(sGuidcaract, "[A-Za-z0-9]{8,8}+[-]+[A-Za-z0-9]{4,4}+[-]+[A-Za-z0-9]{4,4}+[-]+[A-Za-z0-9]{4,4}+[-]+[A-Za-z0-9]{12,12}") = Faux ALORS
    SI sGuidcaract = "" ALORS
    Guid_XML_Classification.guiD00 = sGuidcaract
    Guid_XML_Classification.Nom = gsAttribut_xml+ESP+sCoteerreur
    HAjoute(Guid_XML_Classification)
    SINON
    Guid_XML_Classification.guiD00 = sGuidcaract
    Guid_XML_Classification.Nom = gsAttribut_xml
    HAjoute(Guid_XML_Classification)
    FIN
    FIN
    FIN
    XMLSuivant("docxml")

    FIN
    puis je trouver le mot "Classification" ou lui dire que si pas classification alors ne pas m'indiquer un guid vide
    si vous avez une solution elle sera bien venu ! Merci d'avance

  2. #2
    Membre Expert Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 889
    Par défaut
    Bonjour

    Pas sur de comprendre ce que tu veux

    Si c'est récupérer des données dans un fichier xml, fournis le fichier xml en indiquant ce que tu veux récupérer par exemple en changeant de couleur.

    Sinon je n'ai pas compris...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut merci de l'interet que tu apporte
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Root><ResolveData Classification="7d9c7287-8d6c-4d3d-a0bc-f88532ffbcfd"></ResolveData><ResolveData Classification="7d9c7287-8d6c-4d3d-a0bc-f88532ffbcfd"></ResolveData><box_51001 ADAM_box="{ &quot;type&quot; : &quot;box&quot;, &quot;content&quot; : &quot;class&quot; , &quot;place&quot; : &quot;default&quot; }" Classification="7d9c7287-8d6c-4d3d-a0bc-f88532ffbcfd"><class_51002></class_51002></box_51001><ResolveData href="file:////Volumes/SUNO%203/FACOM/20120113_04_KTA_F12_EXE_GRAVURE_FR/GABARITS/TEMPLATES_MASTER_210x285/Links/PICTO_SECTION_GRIS.ai" Classification=""></ResolveData> ....................................................................................................................................................................
    je souhaite récupérer la valeur en rouge merci de ton aide

  4. #4
    Membre éprouvé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    XMLRacine("docXML")
    SI  XMLRecherche("docXML","Classification", XMLAttribut + XMLSousElement) ALORS
    //Traitement a faire
    FIN
    Tu peux essayer quelque chose dans ce style là, à modifier surement mais c'est une piste.

    Bon dev'

    Nhaps

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut
    Bonjour,
    je voulais faire un truc comme ça:

    nomattribut est une chaine

    nomattribut = xxxxxxxxxxxxxxxxxxxxxxx

    nomattribut est d'avoir en retour le mot "Classification"
    après je lance mon traitement

    je dois rechercher les Guid(7d9c7287-8d6c-4d3d-a0bc-f88532ffbcfd) de classification ça je les trouvent bien mais cerise sur le gâteaux je dois aussi trouvé les Guid (vide)

    ps: je peux aussi te faire un lien de l'appli entière pour que tu comprenne mieux ma problématique ! cette appli trouve bien les guid qui ne respecte pas le format{8-4-4-4-12} mais SI sGuidcaract = "" alors il me trouve tous les attribut vide je ne veux que les attribut "Classification" vide.

    Merci encore du temps que tu passe, si je peut être utile, je suis à paris en ce moment !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut
    ton code ma donné un idée je vais tester avec:
    XMLRecherche("docxml","Classification",XMLAttribut+XMLSousElément)
    avec la fonction POUR TOUT
    Bonne journée

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut
    marche pas je suis pas loin du résultat pourtant, je suis le nez dans le guidon et je n'arrive pas à prendre du recul. une fois que je vais trouver je vais encore me dire que je suis con de pas y avoir pensé avant

  8. #8
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Citation Envoyé par Eldidjor Voir le message
    puis je trouver le mot "Classification" ou lui dire que si pas classification alors ne pas m'indiquer un guid vide
    si vous avez une solution elle sera bien venu ! Merci d'avance
    Bonjour,

    J'ai lu ton code en travers mais si j'ai bien compris tu veux que s'il n'y a pas l'info dans ton XML il ne te retourne pas une valeur vide.
    En gros tu veux faire la différence entre une vrai valeur vide et le cas d'une valeur non trouvé.
    Si c'est bien ça alors il te suffis d'initialiser ta variable qui te retourne le GUID.
    donc avant chaque lecture de ton XML tu met sGuidcaract ="Pas trouver"

  9. #9
    Membre Expert Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 889
    Par défaut
    Bonjour

    puis je trouver le mot "Classification" ou lui dire que si pas classification alors ne pas m'indiquer un guid vide
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Root><ResolveData Classification="7d9c7287-8d6c-4d3d-a0bc-f88532ffbcfd"></ResolveData><ResolveData Classification="7d9c7287-8d6c-4d3d-a0bc-f88532ffbcfd"></ResolveData><box_51001 ADAM_box="{ &quot;type&quot; : &quot;box&quot;, &quot;content&quot; : &quot;class&quot; , &quot;place&quot; : &quot;default&quot; }" Classification="7d9c7287-8d6c-4d3d-a0bc-f88532ffbcfd"><class_51002></class_51002></box_51001><ResolveData href="file:////Volumes/SUNO%203/FACOM/20120113_04_KTA_F12_EXE_GRAVURE_FR/GABARITS/TEMPLATES_MASTER_210x285/Links/PICTO_SECTION_GRIS.ai" Classification=""></ResolveData> ....................................................................................................................................................................
    je souhaite récupérer la valeur en rouge merci de ton aide
    Si au lieu de chercher le mot "Classification", tu cherches si l'attribut "Classification" a une valeur (implicitement cela signifie que tu a trouvé le mot "Classification"

    Si ce bout de code peut t'inspirer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sResultat est une chaîne
    sMonDoc est une chaîne = fChargeTexte("exemple.xml")
    i est un entier = 1
    XMLDocument("DOM", sMonDoc)
    sResultat = XMLLit("DOM","/Root/ResolveData["+i+"]/@Classification")
    TANTQUE sResultat <> ""
    	Info(sResultat)
    	i += 1
    	sResultat = XMLLit("DOM","/Root/ResolveData["+i+"]/@Classification")
    FIN
    XMLTermine("DOM")
    i permet de savoir au niveau de quelle balise ResolveData tu te trouves
    en l’occurrence y-en a 2

Discussions similaires

  1. Comment récupérer le nom d'un attribut XML ?
    Par mappy dans le forum ASP.NET
    Réponses: 3
    Dernier message: 06/08/2007, 17h26
  2. [XML/DTD] Déclaration d'attributs dans un doc XML
    Par citizen87 dans le forum Valider
    Réponses: 4
    Dernier message: 09/05/2006, 11h03
  3. [XML - Schéma] Altova XMLSPY Attribut
    Par Silvia12 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 30/01/2006, 09h52
  4. [xslt] passer le nom d'un attribut comme param
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/11/2005, 11h03
  5. [xml][débutant] élément ou attributs...
    Par celestin dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 24/10/2005, 14h54

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