0
我需要在特定位置添加节点。请检查下面的例子。需要在QTP中的XML中的特定位置添加节点
<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”的子项。我没有在这篇文章中正确地格式化代码。善意调整。
我有过的insertBefore命令溶液(认为它只会工作对于JScript,C#)..但其QTP使用的代码明天早上too..would后.. – user2197743 2013-03-22 05:09:37
解决方案: 集XMLDOM =的CreateObject( “MSXML2.DOMDocument”) xmldom.Load( “C:\ SAMPLE \的test.xml”) “代码以cpoy标签 集ndClnDtl = xmldom.selectSingleNode(“/根/ASNHeader/ASNDetail").cloneNode(true) '您需要的位置到警察XML标记 集specNode上= xmldom.selectSingleNode( “/根/ ASNHeader/ASNSHIP”) “Rtnode是父的位置提到 集Rtnode = xmldom.selectSingleNode( “/根/ ASNHeader”) Rtnode。 insertBefore ndClnDtl,specNode xmldom.Save(“C:\ Sample \ test.xml”) – user2197743 2013-03-22 14:37:56