2016-06-29 1 views
0

XML 파일에 기존 XML 노드를 추가하려면 새 XML 노드를 만들고 싶습니다. 특히, 파일의 구조는 다음과 같습니다새 XML 노드를 만들어 다른 노드에 자식으로 추가

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

내 생각은 각 <trade> 노드를 얻고 그것에 새로운 아이를 추가하는 것입니다. 이 아이는 다음과 같아야합니다

<tradeSource></tradeSource> 

내 질문은, 나는이 새로운 아이가 추가하는 정의 어떻게? VBA (라이브러리 MSXML v3.0이 프로젝트에서 참조 되었음에도 불구하고)에서 만들 수있는 올바른 개체를 찾을 수없는 것 같아요. 그리고 웹에서 새로운 노드의 샘플을 찾을 수 없었습니다. . 내 의사 코드는 :

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) 

유의하시기 바랍니다 두 변수 tradenewNode 선언해야 IXMLDOMNode (라이브러리 msxml6.dll에 정의 된 유형) 등.

+0

답변 해 주셔서 감사합니다! 그것은 실제로 노드를 생성하지만 추가하려고하면 "appendChild"메소드가 실패합니다. 그것은 XMLFile 객체에서만 작동하는 것처럼 보입니다. 어떤 생각? –

+0

마지막으로 올바른 개체 유형을 사용하는 데 문제가있었습니다. 나는 당신의 답을 수정 했으므로 그것을 받아 들였습니다. 고마워요! –