我需要使用QTP比较2个xml文件,其中需要比较每个标记的值,如果找到则需要打印值的差异。我使用了内置函数 XMLUTIL ,但它没有按预期工作,即它创建了一个包含父标记的差异文件。
<tns:AAL_Request_NEW xsi:schemaLocation="http://www.bnymellon.com/AAL_Request_NEW AAL_Request_NEW.xsd">
<tns:OPF_Information>
<tns:Source>
<tns:Source>EPH</tns:Source>
</tns:Source>
<tns:References>
<tns:Accounting_Record_Reference>130830000672401</tns:Accounting_Record_Reference>
<tns:OPF_Reference>EPH1308300006724</tns:OPF_Reference>
<tns:Group_Reference>EPH1308300006723</tns:Group_Reference>
</tns:References>
</tns:OPF_Information>
</tns:AAL_Request_NEW>
在上面的xml文件中,我只需要像
这样的值的标签tns:值为 EPH 的源,tns:Accounting_Record_Reference,值为130830000672401,tns:OPF_Reference,值为EPH1308300006724,tns:Group_Reference为EPH1308300006723,而不是像tns这样的父标签:引用,tns: OPF_Information或tns:AAL_Request_NEW。
任何人都可以帮助获取其中没有子标记的标记的逻辑,并立即在其start&lt;&gt;之间只有一个值结束。并结束并将其与其他文件进行比较,如果存在差异,则打印标签名称和值?
答案 0 :(得分:0)
您可以使用CreateObject(“Microsoft.XMLDOM”)读取xml文件并按标记名称检索标记并将它们分开。
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.load("<XML PATH>")
Set Root = objXMLDoc.documentElement
Set tags = root.tagnames
Set NodeList = Root.getElementsByTagname("<node name>")
For Each Elem In NodeList
msgbox Elem.text
Next
谢谢和问候