net mvc development asp asp.net html dom diff

asp.net - mvc - ¿Hay alguna herramienta para comparar la estructura de 2 páginas web?



razor partial (5)

Recibo páginas HTML de nuestro equipo creativo y las uso para crear páginas aspx. Un desafío al que me enfrento frecuentemente es obtener el HTML que escupí para que coincida con el de ellos exactamente. Casi siempre termino arruinando el anidamiento de <div> s entre mi página y las páginas maestras.

¿Alguien sabe de una herramienta que ayudará en esta situación, algo que comparará 2 páginas y dará como resultado las diferencias estructurales? No puedo usar una herramienta de diferencias estándar, porque los ID cambian de lo que recibo de creativo, el texto reemplaza lorem ipsum , etc.


Si sale HTML compatible con XML de salida. O al menos, traduzca su producto HTML al cumplimiento de XML, al menos podría XSL su salida para eliminar el contenido y las etiquetas de identificación. Aplique la misma transformación a su html, y luego compare.


winmerge es un buen programa visual diff


Estaba pensando en líneas de XML Diff ya que HTML se puede representar como un documento XML. El desafío con HTML es que puede no estar siempre bien formado. Encontré uno más aquí que muestra cómo usar la clase XMLDiff .


Puede usar HTMLTidy para convertir el HTML a XML bien formado para que pueda usar XML Diff , como sugirió Gulzar.

tidy -asxml index.html


Una copia de mi propia respuesta desde aquí .

¿Qué pasa con DaisyDiff (las versiones de Java y PHP están disponibles).

Las siguientes características son realmente agradables:

  • Funciona con HTML mal formado que se puede encontrar "en la naturaleza".
  • El diffing es más especializado en HTML que el árbol XML. Cambiar parte de un nodo de texto no hará que se cambie todo el nodo.
  • Además de la diferencia visual predeterminada, la fuente HTML se puede diferir de forma coherente.
  • Proporciona descripciones fáciles de entender de los cambios.
  • La GUI predeterminada permite una fácil exploración de las modificaciones a través de atajos de teclado y enlaces.