2016-11-02 10 views
0

VBScriptを使用して同じ名前のxmlファイル内のノードの値を変更することで、この課題に直面しています。次のサンプルXMLです:類似の名前のVBSを使用したXMLのノード値の変更

- <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>

私の要件は、タグの両方の出現の値

<CharValue>

を変更することです。 これらのタグに属性がある場合はこれを実行できましたが、この場合はスタックされています。

私は次のコードを試しましたが、私が必要とするものを得ることができませんでした。

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

助けてください。ありがとう。

+0

変更にXMLオブジェクトまたはXMLファイルの値を試してみてください? –

+0

こんにちはPankaj、これらのタグのXMLファイルの値を変更したいと思います。私は他のタグのファイルを変更することができますが、このシナリオでは私が与えたコードで変更することはできません。 –

+0

'node.Text =" Value 1 "'はあなたのコードに 'node'という名前がないので間違っています。ノードオブジェクトの配列であってもよい 'NodeList'でなければなりません。 –

答えて

0

は、次のコード

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

ありがとうPankaj、それは働いた:) documentElementは私のコードのノードを設定する必要はありませんでした。迅速な解決に感謝します。 –

+0

@ J.A。 - お力になれて、嬉しいです。これが有効な場合は、[** Accepted **](http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)とマークすることを忘れないでください君は。 –

関連する問題