0

我需要使用 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:Source 的值为EPH,tns:Accounting_Record_Reference 的值为 130830000672401,tns:OPF_Reference 的值为 EPH1308300006724 和 tns:Group_Reference EPH1308300006723 进行比较,而不是父标签,如 tns:References、tns:OPF_Information 或 tnsA:

任何人都可以帮助逻辑获取其中没有子标签的标签,并立即结束,在其开始 <> 和结束之间只有一个值,并将其与另一个文件进行比较并打印标签名称和值(如果有)有区别吗?

4

1 回答 1

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

谢谢并恭祝安康

于 2013-10-23T12:26:45.610 回答