2016-11-02 1 views
0

Je suis confronté à ce défi en changeant les valeurs de nœuds dans un fichier xml portant les mêmes noms, en utilisant VBScript. Voici le code XML exemple:Modification de valeurs de nœuds en XML à l'aide de VBS avec des noms similaires

- <MappingData> 
 
    \t <Name>Name 1</Name> 
 
\t - <ValueField FieldName="Name 2"> 
 
\t \t <CharValue>Value 1</CharValue> 
 
\t \t </ValueField> 
 
\t - <ValueField FieldName="Name 3"> 
 
\t \t <CharValue>Value 1</CharValue> 
 
\t \t </ValueField>

Mon exigence est de changer les valeurs des deux occurrences de tag

<CharValue>

. J'aurais pu le faire s'il y avait un attribut dans ces balises, mais dans ce cas je suis bloqué.

J'ai essayé le code suivant, mais je n'ai pas pu obtenir ce dont j'avais besoin.

Set NodeList = objXMLDoc.documentElement.selectNodes("//MappingData/ValueField/CharValue") 
For i = 0 To NodeList.length - 1 
    node.Text = "Value 1" 
Next 

Toute aide est appréciée. Merci.

+0

Modifier la valeur de l'objet xml ou dans le fichier xml? –

+0

Salut Pankaj, je veux changer la valeur dans le fichier XML pour ces balises. Je suis capable de faire des changements dans le fichier pour d'autres balises, mais ce scénario, je suis incapable de faire des changements avec le code que j'ai donné. –

+0

'node.Text =" Value 1 "' est incorrect car il n'y a rien de 'node' dans votre code. Ce devrait être 'NodeList', qui peut être un tableau d'objets de noeud. –

Répondre

0

Essayez le code suivant

Set xDoc = CreateObject("Msxml2.DOMDocument.6.0") 
xDoc.setProperty "SelectionLanguage", "XPath" 
xDoc.async = False 
xDoc.load "test.xml" 

Set nNodes = xDoc.selectNodes("//MappingData/ValueField/CharValue") 
For i = 0 To nNodes.Length - 1 
    nNodes(i).text = "Changed value " & i 
Next 

xDoc.Save "test.xml" 
+0

Merci beaucoup Pankaj, ça a marché :) documentElement n'était pas nécessaire dans Set Node de mon code. Merci encore pour la résolution rapide. –

+0

@ J.A. - Heureux d'aider. Ne pas oublier de le marquer comme [** Accepté **] (http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) si cela fonctionne pour toi. –