UFT / VB代码比较两个xml的忽略子元素排序

时间:2016-02-16 10:29:00

标签: xml vbscript hp-uft

我想比较两个xml的忽略子命令 例如:

File1.xml          一个     12     

File2.xml          12     一个     

必须忽略顺序并比较文件。

我尝试使用代码,但它不会忽略排序     设置doc = XMLUtil.CreateXML()

On error resume next
doc.LoadFile strF1
intErr1 = err.number

Set doc1 = xmlutil.CreateXML()
doc1.Load doc.ToString      
err.clear

Set docX = XMLUtil.CreateXML()
On error resume next
docX.LoadFile strF2
intErr2 = err.number
Set doc2 = xmlutil.CreateXML()
doc2.Load docX.ToString

res = doc1.Compare(doc2,resultDoc)
print res

1 个答案:

答案 0 :(得分:0)

您想要做的事实上实现起来实际上相当复杂。要进行比较但要容忍差异会很快变得混乱 你真的想要第三方库来实现它。

但是,如果文件预期完全相同,除了元素的顺序,那么我建议按字母顺序对文件进行排序并比较这种方式。既然你在问题中指明了这一切,那就应该没问题了。

要做到这一点,你可以通过换行符将xml的字符串拆分成一个行数组并进行冒泡排序:

for a = UBound(linearray) - 1 To 0 Step -1
    for j= 0 to a
        if linearray(j)>linearray(j+1) then
            temp=linearray(j+1)
            linearray(j+1)=linearray(j)
            linearray(j)=temp
        end if
    next
next 

对每个数据字符串重复一遍,你的字符串应匹配。