Слияние строки в XML

Я на самом деле обновляю приложение Legacy в VB 6.0 и мне нужно добавить элемент в XML, объявленный как IXMLDOMElement, Содержимое моего объекта XML на самом деле выглядит следующим образом;

<ChoiceLists>
 <Test Default="*">
  <Choice Value="1" Description="Hours"/>
  <Choice Value="2" Description="Days"/>
 </Test>
</ChoiceLists>

И теперь у меня есть запрос, который уже возвращает мне результат в формате XML (в виде строки), как

<Test2 Default="*">
  <Choice Value="276" Description="#276"/>
  <Choice Value="177" Description="#177"/>
  <Choice Value="0000" Description="#0000"/>
  <Choice Value="176" Description="#176"/>
</Test2>

который мне нужно интегрировать в мой XML, то есть в корневой узел <ChoiceLists>,

Может кто-нибудь сказать мне, как мне добавить эту строку в мой XML, пожалуйста? Я пробовал разные функции IXMLDOMElement объект, но напрасно.

Спасибо

1 ответ

Решение

Вы можете использовать IXMLDOMNode.appendChild() метод, чтобы добавить один элемент (и дочерние элементы) к другому элементу. Если у вас есть необработанная строка, которую нужно преобразовать, вы можете загрузить ее в новую DOMDocument с помощью IXMLDOMDocument.loadXML()

Dim TargetDocument As IXMLDOMDocument
Dim TargetElement As IXMLDOMElement
Dim NewDocument As IXMLDOMDocument
Dim NewElement As IXMLDOMElement

'Load your target document here
Set TargetDocument = New DOMDocument
TargetDocument.Load "P:\iCatcher Console\XML\feedlist.xml"

'Get a reference to the element we want to append to (I'm assuming it's the document element)
Set TargetElement = TargetDocument.DocumentElement

'Create a new documents to parse the XML string
Set NewDocument = New DOMDocument
NewDocument.loadXML NewXMLString

'The root of this document will be the outer element in the string so get a reference to that
Set NewElement = NewDocument.DocumentElement

'Append the new element to the target's children
TargetElement.appendChild NewElement

Получившийся XML теперь будет выглядеть примерно так:

<ChoiceLists>
 <Test Default="*">
  <Choice Value="1" Description="Hours"/>
  <Choice Value="2" Description="Days"/>
 </Test>
 <Test2 Default="*">
  <Choice Value="276" Description="#276"/>
  <Choice Value="177" Description="#177"/>
  <Choice Value="0000" Description="#0000"/>
  <Choice Value="176" Description="#176"/>
 </Test2>
</ChoiceLists>
Другие вопросы по тегам