2016-02-16 20 views
0

我想比較兩個XML的無視孩子爲了 如:UFT/VB代碼來比較兩個XML的忽略子元素訂貨

File1.xml 一個

File2.xml a

它必須忽略順序並比較文件。

我試着用代碼,但它不會忽略訂購 設置文檔= 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 

回答

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 

重複數據的每個字符串和你的字符串應該匹配。