2016-06-29 13 views
0

新しいXMLノードを作成して、XMLファイルの既存のノードに追加したいとします。 具体的には、ファイルの構造は次のとおりです。新しいXMLノードを作成して、他のノードに子として追加する

<contract> 
    <trade></trade> 
    <trade></trade> 
</contract> 

私の考えでは、各<trade>ノードを取得し、それに新しい子を追加することです。 この子は次のようになります。

<tradeSource></tradeSource> 

私の質問があり、私はこの新しい子を追加する定義はどうすればよいですか? VBAで作成するのに適切なオブジェクトを見つけることはできません(ライブラリMSXML v3.0はプロジェクトで参照されていますが)、Web上のどこにでも新しいノードのサンプルを見つけることはできません。私の擬似コード:

XMLFile.Load(myFileFullName) 
Set tradeNodes = XMLFile.getElementsByTagName("trade") 
For Each trade In tradeNodes 
    Set newNode = ???? '<-- how to fill this? 
    trade.appendChild(newNode) 
Next trade 
+0

複数の子要素を追加する必要がある場合は、ノードごとにグループ化された複雑な関連ロジックを持つ多くの兄弟/兄弟が、変換XML言語XSLTを検討してください。そして、はい、Excel VBAはXSLTを実行できます。 – Parfait

答えて

1

これは動作するはずです:

Set newNode= XMLFile.CreateElement("price"); 
newNode.InnerText = "19.95" 
trade.appendChild(newNode) 

両方の変数tradenewNodeIXMLDOMNode(ライブラリmsxml6.dllで定義されているタイプ)として宣言されなければならないことに注意してください。

+0

あなたの答えをありがとう!実際にはノードが作成されますが、追加しようとすると "appendChild"メソッドが失敗します。それはXMLFileオブジェクトにしか働かないようです。何か案が? –

+0

最後に、正しいオブジェクトタイプを使用するだけでした。私はあなたの答えを変更したので、私はそれを受け入れた。どうもありがとう! –

関連する問題