0

我需要在特定位置添加一个节点。请检查下面的示例。

<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”的子级。我在这篇文章中没有正确格式化代码。请调整。

4

1 回答 1

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")
于 2013-03-22T14:40:11.433 回答