Слияние строки в 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>