PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → XML Créer des attributs ayant le même nom dans une boucle
XML Créer des attributs ayant le même nom dans une boucle
Débuté par DrTulipe, 25 mai 2018 10:29 - 4 réponses
Membre enregistré
55 messages
Posté le 25 mai 2018 - 10:29
Bonjour,
Comme exprimé dans le titre, je souhaite créer des attributs dans un fichier xml via une boucle. Ceux-ci auront le même nom mais pas les mêmes paramètres.

Je souhaiterais obtenir un résultat comme ceci :


<MACHININGS>
<MACHINING WCODE="123456789" OFFSET="1">
<MACHINING WCODE="987654321" OFFSET="1">
</MACHININGS>

Voici mon code :
nRECHERCHEIDLSPPROF=TableCherche(TBLE_U_IDLSTPROF,TBLE_C_IDLSTPROF)
TANTQUE nRECHERCHEIDLSPPROF <> -1

XMLAjouteAttribut("XML_Profils","MACHINING","WCODE="+TBLE_U_CODEBE[nRECHERCHEIDLSPPROF]+" OFFSET=1")
nRECHERCHEIDLSPPROF=TableCherche(TBLE_U_IDLSTPROF,TBLE_C_IDLSTPROF,rechercheIdentique,nRECHERCHEIDLSPPROF+1)
FIN

La génération du fichier se fait bien, pas de message d'erreur de la part de windev, seulement lorsque j'ouvre le fichier :





Voilà, merci d'avance pour votre aide ^^

(le sujet va sûrement sortir en double étant donné que je n'étais pas inscrit lorsque j'ai créé le premier)
Membre enregistré
939 messages
Popularité : +66 (68 votes)
Posté le 25 mai 2018 - 10:46
bonjour,

attention là vous confondez 'Fils' et 'Attribut' XML.
WCODE et OFFSET sont des Attributs.
MACHINING est un Fils.

du coup,

// Boucle
XMLAjouteFils("XML_Profils","MACHINING","",Vrai)
XMLAjouteAttribut("XML_Profils","WCODE",TBLE_U_CODEBE[nRECHERCHEIDLSPPROF])
XMLAjouteAttribut("XML_Profils","OFFSET",1)
XMLParent("XML_Profils")
// Boucle
Membre enregistré
55 messages
Posté le 25 mai 2018 - 11:01
J'ai du mal m'exprimer, J'ai au dessus de ma boucle
XMLAjouteFils("XML_Profils","MACHININGS","",Vrai)

et en attribut il me faut avoir le nom "MACHINING au singulier et avoir offset et wcode sur la même ligne
Membre enregistré
939 messages
Popularité : +66 (68 votes)
Posté le 25 mai 2018 - 11:09
Désolé de me répéter, mais MACHINING n'est pas un attribut !
C'est un fils de MACHININGS
WCODE et OFFSET sont des attributs de MACHINING.

donc çà devrait donner ceci

XMLAjouteFils("XML_Profils","MACHININGS","",Vrai)
nRECHERCHEIDLSPPROF=TableCherche(TBLE_U_IDLSTPROF,TBLE_C_IDLSTPROF)
TANTQUE nRECHERCHEIDLSPPROF <> -1

XMLAjouteFils("XML_Profils","MACHINING","",Vrai)
XMLAjouteAttribut("XML_Profils","WCODE",TBLE_U_CODEBE[nRECHERCHEIDLSPPROF])
XMLAjouteAttribut("XML_Profils","OFFSET",1)
XMLParent("XML_Profils")

nRECHERCHEIDLSPPROF=TableCherche(TBLE_U_IDLSTPROF,TBLE_C_IDLSTPROF,rechercheIdentique,nRECHERCHEIDLSPPROF+1)
FIN
XMLParent("XML_Profils")


bon dèv
Membre enregistré
55 messages
Posté le 25 mai 2018 - 11:16
Aaaaaah d'accord, merci beaucoup ! ça fonctionne niquel, je pensais qu'en mettant un fils "machining" ça me créerait une balise machining et que sur une ligne à part mon attribut :/

Bref merci pour ton aide !