VBA: XML, modification du texte d'un node
Possum3D
-
Possum3D -
Possum3D -
Bonjour à tous,
Je tourne depuis quelques temps sur un problème énervant.
J'ai un fichier xml du type:
--------------------------
--------------------------
Avec VBA, je souhaite donner une valeur à ce Node, donc obtenir:
--------------------------
--------------------------
Je fais donc:
et là, tout le contenu (node A, CDATA) se fait écraser par la valeur! j'obtiens alors:
--------------------------
--------------------------
Ma question est donc:
Y a t il un moyen simple d'éviter ça et "d'insérer" la valeur dans le node ? J'ai l'impression que ce problème est récurrent, et pourtant je n'ai pas mis la main sur une réponse acceptable jusqu'à présent.
Cordialement
Possum3D
Je tourne depuis quelques temps sur un problème énervant.
J'ai un fichier xml du type:
--------------------------
<item>
<A>
</A>
<![CDATA[TOTO]]>
</item>
--------------------------
Avec VBA, je souhaite donner une valeur à ce Node, donc obtenir:
--------------------------
<item>
123456789
<A>
</A>
<![CDATA[TOTO]]>
</item>
--------------------------
Je fais donc:
monItem.text = 123456789
et là, tout le contenu (node A, CDATA) se fait écraser par la valeur! j'obtiens alors:
--------------------------
<item>
123456789
</item>
--------------------------
Ma question est donc:
Y a t il un moyen simple d'éviter ça et "d'insérer" la valeur dans le node ? J'ai l'impression que ce problème est récurrent, et pourtant je n'ai pas mis la main sur une réponse acceptable jusqu'à présent.
Cordialement
Possum3D
2 réponses
-
Bonjour,
C'est bien trop complexe pour moi, mais à tout hasard... Passer par une variable intermédiaire :MaVar = 123456789 & monItem.Text monItem.Text = MaVar
-
Bonjour Pijaku,
Merci de te pencher sur le problème.
J'ai envisagé cette solution, mais elle est instable: ainsi, de manière assez étonnante, cette opération va supprimer les balises cdata et traiter son contenu comme du texte.
On se retrouve alors avec une valeur:
123456789TOTO
...
Possum3D