需要在QTP中的XML中的特定位置添加节点

时间:2013-03-22 04:22:22

标签: xml tags 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”的子代。我没有在这篇文章中正确格式化代码。善意调整。

1 个答案:

答案 0 :(得分: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")