2012-11-14 47 views
0

我有兩個HTML頁面,其源代碼要比較。我已將頁面源代碼轉換爲字符串,並且我需要知道什麼是比較兩個巨大字符串的最佳方式。如何有效比較兩個HTML頁面內容

  • 我應該使用正常的比較方法,例如page1.eql?(page2)
  • str.eql?(str1)也比較符號,例如@

我真的很感激知道比較的最佳方法。

+2

你只是想知道如果有區別?你是否也將其中一個文件與其他許多文件進行比較? – moritz

+0

您將頁面源代碼轉換爲字符串?他們之前是什麼?爲什麼不是一個簡單的字符串比較足夠?當您嘗試將'@'與'@'進行比較時發生了什麼?你看過'diff'嗎?你有什麼嘗試? –

+0

我想知道內容是否不同,並提取差異以供進一步分析。 – amjad

回答

1

我不確定您希望比較的詳細程度如何。如果你想要「diff-like」功能,你可以查看以前類似的問題:diff a ruby string or array

1

這是levenshtein方法,它會打印字符串之間的差異,我不確定這是你的尋找。否則,我只想用page1.eql建議?(第2頁)

def levenshtein(a, b) 
    case 
    when a.empty? then b.length 
    when b.empty? then a.length 
    else [(a[0] == b[0] ? 0 : 1) + levenshtein(a[1..-1], b[1..-1]), 
      1 + levenshtein(a[1..-1], b), 
      1 + levenshtein(a, b[1..-1])].min 
    end 
end 
0

退房的loofah寶石(github link)。它DIFFS HTML(和XML)子樹語義,這意味着無意義的空白將被忽略,屬性的順序被忽略,等

+0

儘管它確實非常好,但該項目自2012年以來沒有見過提交。 – NicolasWebDev