假設我有2個HTML源。我想比較這些,如果他們的差異超過給定的百分比值,我想用新的HTML做些什麼。
例如,如果2個HTML頁面相差5%或更多,我想給某人發電子郵件。 我怎樣才能在Java中做到這一點?有這樣的圖書館嗎?檢測HTML頁面之間的差異百分比
回答
我們的Smart Differencer工具可能會對此有所幫助。
此工具進行比較的「代碼」(各種語言,HTML是一個)結構,併產生一個「差異」等輸出,但它的重點是代碼差異,而不是隻是原始文本的差異,使用特定語言(但有點有限)知識什麼是真的不同。所以,如果你換了標籤中的兩個屬性的位置,它會說沒有區別。
的diff的輸出告訴你什麼代碼塊已經被刪除,插入,移動或複製完成根據語言結構的替代檢測。 (對於HTML,正常顯示的文本中的任何更改都被認爲是替代;它不會在這些文本字符串上做差異)。你必須掃描工具輸出以收集你的「整體變化」統計數據,所以這與cygwin diff的做法在概念上不同,但數字可能更精確。因人而異。
感謝您的回答。我認爲我現在應該爲我的項目使用更復雜的工具。 (像基於塊的差異等工具)我會更多地關注你的項目,但無論如何,我選擇這個作爲答案,因爲這比其他答案更好。再次感謝。 – 2012-07-18 18:46:17
這樣做的廉價和骯髒的方法是通過HTML整理程序運行所有內容,刪除無關緊要的空格,然後在每個'<'字符前插入換行符。根據我的經驗,您可以通過標準的基於行的diff實用程序運行生成的文本,爲您提供一個「足夠好」的粗略差異度量。
我不想做這樣的事情。像DaisyDiff(code.google.com/p/daisydiff)這樣的工具可以代表HTML中的差異。主要的實現是HTMLDiff,並且有很多Web跟蹤工具可以執行類似我想要的操作,但我正在尋找一個庫,而不是在另一個HTML中表示差異,只是告訴我它檢測到了多少變化。 – 2011-05-11 17:29:26
鑑於我所描述的,「多少變化」是微不足道的 - 它是差異的行數除以原始行數。 – regularfry 2011-05-12 10:54:57
解決方案的問題在於XML和HTML文檔是基於樹的文檔,而非基於行的文檔。所以我們必須比較節點(不是行)。 – 2011-05-12 20:10:51
- 1. 標籤散點圖上兩點之間的差異百分比差異
- 2. 計算表上各行之間的百分比差異
- 3. 計算方程之間的百分比差異
- 4. 2圖像之間的百分比差異
- 5. 瀏覽器之間的左/右百分比差異
- 6. 兩個文本文件之間的百分比差異
- 7. 分頁和分段之間的差異
- 8. 兩個日期之間的差異和當前時間的百分比java
- 9. 日誌文件的差異百分比
- 10. 計算兩個HTML文件的百分比差異
- 11. 計算差異和百分比
- 12. Javascript差異百分比數學
- 13. 百分比值與GNU差異
- 14. 計算列百分比差異
- 15. 搞清楚百分比差異
- 16. 將差異轉換爲百分比
- 17. 斑點檢測和圖像分割之間的差異
- 18. 頁面源代碼和檢查元素i之間的差異
- 19. 獲取日期之間的運行總百分比差異的問題
- 20. Ruby中文字和文字百分比之間的語義差異?
- 21. Android java百分比位圖兩個圖像之間的像素差異
- 22. 使用FFMPEG查找兩個視頻之間的差異百分比
- 23. 使用Python查找兩個圖像之間的差異百分比「imgdiff」庫
- 24. SAS企業指南:報告顯示列之間的差異百分比
- 25. MySQL:如何根據日期獲得行之間的百分比差異
- 26. 活動頁面和背景頁面之間的差異
- 27. 如何計算屬性和百分位數之間的差異?
- 28. jquery mobile和webapp-net的html之間的差異技術比較
- 29. 瀏覽器之間的HTML差異
- 30. CSS-更改html頁面大小的百分比
你說什麼樣的差異? – 2011-05-11 14:45:48
http://stackoverflow.com/questions/141993/best-way-to-compare-2-xml-documents-in-java可能會回答你的問題 – VirtualTroll 2011-05-11 14:46:24
發佈的問題不回答這個問題,對不起。我正在談論HTML源代碼中的任何差異。例如,如果兩個網頁與頁面頂部的日期/時間不同,它應該返回類似0.1%的差異。 – 2011-05-11 17:22:06