İki HTML belgesini karşılaştırmak ve aynı olup olmadığını öğrenmek istiyorum. Ancak yalnızca DOM yapısıyla karşılaştırmak, yani bir etiketteki özniteliklerin sırasını göz ardı etmek anlamına gelir, örneğin, <table id="one" name="table">
, <table name="table" id="one">
aynıdır. Eğer statik içerik karşılaştırmak gerekirseHTML belgelerini DOM yapısına göre karşılaştırabilen araçlar var mı?
cevap
DOM Düzey 3 Çekirdek içeriği ayrıştırılır DOM Düğüm vermek karşılaştırır yöntem isEqualNode() sağlar. .
Bu
diğer tarayıcılarda desteğe ihtiyaç varsa bunu kendiniz uygulamak zorunda kalacak Firefox, Chrome, Safari ve IE9, ancak Opera veya daha önceki tarayıcılar tarafından desteklenmektedir Burada JS kısmi uygulama görebilirsiniz:.function Node_isEqualNode(that, other) {
// Use native support where available
//
if ('isEqualNode' in that)
return that.isEqualNode(other);
// Check general node properties match
//
var props= ['nodeType', 'nodeName', 'localName', 'namespaceURI', 'prefix', 'nodeValue'];
for (var i= props.length; i-->0;)
if (that[props[i]]!==other[props[i]])
return false;
// Check element attributes match
//
if (that.nodeType===1) {
if (that.attributes.length!==other.attributes.length)
return false;
for (var i= that.attributes.length; i-->0;)
if (!Node_isEqualNode(that.attributes[i], other.getAttribute(that.attributes[i].name)))
return false;
}
// Check children match, recursively
//
if (that.childNodes.length!==other.childNodes.length)
return false;
for (var i= that.childNodes.length; i-->0;)
if (!Node_isEqualNode(that.childNodes[i], other.childNodes[i]))
return false;
return true;
}
Not Bu, DOM Seviye 3 Çekirdeğinin gerektirdiği ekstra DocumentType
özellikleri için test yapmaz. Bunu oldukça kolay bir şekilde ekleyebilirsiniz, ancak daha sonra entities
gibi şeylerin tarayıcı desteği oldukça zayıftır. Ben sorunu çözmek zorunda
, daisydiff ben hella uzun süre WinMerge kullandığınız bir çözüm
DaisyDiff bazı boş gösterici veriyor. Lütfen çözümünüzü paylaşın. –
ve ben onunla herhangi bir sorun olmadı.
php/html/css, etc için kullanıyorum - ama benim meslektaşlarım da delphi, C# ve daha fazlası için kullanıyor.
Bu sorunu çözdüm ve html kodumu div
içine koyup jQuery'nin .html()
işlevini kullanarak çözmeyi başarabiliyordum ve daha sonra bu kodun kuralsız bir şekilde gösterilmesini sağladı. En azından Firefox 4 ve IE8'de gayet iyi çalışıyor gibi görünüyor. arasında
function compareHtml(a, b) {
var div = $(document.createElement('div'));
div.html(a);
var aNormalized = div.html()
div.html(b);
var bNormalized = div.html()
return aNormalized == bNormalized;
}
- 1. Aşağıdaki örnek tablo yapısına göre
- 2. #includes düzenlenmesine yardımcı olan araçlar var mı?
- 3. .NET HTML DOM Ayrıştırıcısı?
- 4. dom fonksiyonuna göre arama işlevi
- 5. basit html dom
- 6. HTML DOM Çizim Hareketi Javascript?
- 7. CSS'de HTML yorumları var mı?
- 8. Diğer diller/IDE'ler için Clone Detective'e benzer araçlar var mı?
- 9. Vba kodu refactoring - yardımcı olacak araçlar var mı?
- 10. Yorum bırakılmış .NET kodu hakkında rapor oluşturabilecek araçlar var mı?
- 11. SVG yollarını test etmek için çevrimiçi araçlar var mı?
- 12. xaml'de resx localisation refactoring özelliğini destekleyen araçlar var mı?
- 13. alınıyor 'Xline: href' HTML DOM
- 14. Markdown belgelerini HTML en masse'ye nasıl dönüştürebilirim?
- 15. Play 2.x için API belgelerini oluşturmak için herhangi bir eklenti var mı?
- 16. Jsdom belgelerini nerede bulabilirim?
- 17. Raml 1.0 (0.8 değil) bir HTML üreteci var mı?
- 18. C++ Dize olarak dizin yapısına göre Data-Url *
- 19. Android Yerel Yerleşimleri için DOM denetçisine eşdeğer var mı?
- 20. DOM, MSHTML IE8'de değiştirildiğinde değiştirilen bir olay var mı?
- 21. Zamanlayıcıda renk değiştiren metin var mı? (HTML)
- 22. Yürütme xml planlarını görselleştirmek için araçlar HTML olarak
- 23. Lucene belgelerini Luke'a sıralama
- 24. kaydet metin ben PHP ve jQuery kullanarak tüm DOM kaydeder bir web sitesi var DOM
- 25. Bu var mı? HTML Şablonu Oluşturucu JavaScript ile yazılmış mı?
- 26. HTML DOM genişlik + görülebilir pencerenin yüksekliği
- 27. .NET sınıf belgelerini?
- 28. gerekli araçlar?
- 29. KDoc belgelerini nasıl alırım?
- 30. DOM
olası yinelenen ([herhangi araçları? 2 web sayfalarının yapısını karşılaştırmak için orada var] http://stackoverflow.com/questions/48669/are-there-any-tools-out-there -to-karşılaştır-yapı-of-2-web-sayfaları) –
@DanielVandersluis Yinelenen katılmıyorum. Diğer soru, gerçek kimlik ve metin değerlerini de göz ardı etmek istiyor. –