2013-03-22 2 views
0

Мне нужно добавить узел в определенную позицию. пожалуйста, ознакомьтесь с приведенным ниже примером.Нужно добавить узел в определенную позицию в XML в QTP

<root> 
<ASNHeader> 
<ASNStart>text</ASNStart> 
<ASNprop>text_prop</ASNprop> 
<ASNDetail> 
<ASNAprvr>Mr.X</ASNAprvr> 
<ASNAprvrDt>20Mar</ASNAprvrDT> 
<ASNAprvrSub>XXX</ASNAprvrsUB> 
</ASNDetail> 
<ASNSHIP>XYZ</ASNSHIP> 
<ASNSRDC>XYZ123</ASNSRDC> 
</ASNHeader> 
</root> 

Здесь я должен копировать «ASNDetail» тег и вставьте его после существующего «ASNDetail» и перед «ASNSHIP» тега. Мне нужно скопировать его в зависимости от количества заданий пользователя. Примечание: Я должен сделать это в QTP, и я использую MSXML2.DomDocument как XML-парсер. может кто-нибудь предложить способ. AppendChild копирует его после тега «ASNSRDC», но я не хочу этого. Здесь «ASNHeader» является дочерним элементом «root». ASNDetail является дочерним по отношению к "root \ ASNHeader". Я неправильно форматирую код в этом сообщении. добросердечно отрегулируйте.

+0

у меня есть решение с помощью команды InsertBefore (подумал, что это будет работать только для Jscript, C#) .. но работает QTP too..would размещать код завтра утром .. – user2197743

+0

Решение: Set XMLDOM = CreateObject ("MSXML2.DOMDocument") xmldom.Load ("C: \ Sample \ test.xml") «Код для cpoy в тег Set ndClnDtl = xmldom.selectSingleNode ("/корень /ASNHeader/ASNDetail").cloneNode(true) 'Место, где вам нужно КС в XML-теги Set specNode = xmldom.selectSingleNode ("/ корень/ASNHeader/ASNSHIP") «Rtnode является родителем к месту упоминается Set Rtnode = xmldom.selectSingleNode ("/ корень/ASNHeader") Rtnode. insertBefore ndClnDtl, specNode xmldom.Save ("C: \ Sample \ test.xml") – user2197743

ответ

0

Решение:

Set xmldom = CreateObject("MSXML2.DOMDocument") 
xmldom.Load(C:\Sample\test.xml") 

'Code to cpoy the tag 
Set ndClnDtl = xmldom.selectSingleNode("/root/ASNHeader/ASNDetail").cloneNode(true) 

'Location at which you need to cop the xml tags 
Set specNode = xmldom.selectSingleNode("/root/ASNHeader/ASNSHIP") 

'Rtnode is parent to the location mentioned 
Set Rtnode = xmldom.selectSingleNode("/root/ASNHeader") 
Rtnode.insertBefore ndClnDtl,specNode 

xmldom.Save("C:\Sample\test.xml") 
Смежные вопросы