2009-02-13 19 views
40

Estoy buscando una herramienta de comparación XML que entienda xml. No puede ser una comparación línea por línea como WinMerge o Beyond Compare.Herramienta o biblioteca para comparar archivos xml

Una solución ideal sería aquella que muestra cambios similares a la forma en que Word 2007 muestra los cambios de pista. DeltaXML hace esto, pero no viene con una interfaz gráfica de usuario real 'fuera de la caja' y es $ 500 por usuario !:

http://i41.tinypic.com/os8k5k.jpg

ExamXml trabajos fuera de la caja, sino que muestra las diferencias de una manera confusa. Que no tiene un concepto de antes y después, sólo se muestran las diferencias:

alt text http://www.a7soft.com/images/examxml1_.gif

la herramienta debe tener el concepto de usar atributos como clave, por lo que no se considera que un lista reordenada de los elementos han cambiado DeltaXML hace esto pero no pude configurarlo correctamente para la captura de pantalla.


ACTUALIZACIÓN:

Hasta ahora ExamlXML es lo mejor de la solución de caja. Pero carece de los conceptos de gestión de cambios de DeltaXML. Resultando en algunos problemas de usabilidad.

DeltaXML es más o menos la solución que necesito, pero algo con más funcionalidad de la caja sería mejor. DeltaXML requiere escribir código java para llamar a la API, junto con escribir XSL para transformar el xml en la entrada esperada.

+0

Aclare más: en su ejemplo, ¿qué resultado debería producir la herramienta de diferencias putativo? –

+1

¿Quién está rechazando todas las respuestas a esta pregunta? Bastante infantil. – BobbyShaftoe

+0

Subí un número de ellos yo mismo, ya que creo que todas las utilidades mencionadas son aplicaciones de calidad que las personas no técnicas podrían manejar con cierta capacitación. –

Respuesta

13

Si entiendo su problema, es probable que tenga una aplicación que utiliza archivos XML como el almacenamiento de datos y la GUI abstrae los nombres de las etiquetas "técnicas" en etiquetas "amigables para el usuario". De nuevo, lo asumo. Entonces sería una extensión natural ver las diferencias de una manera similar. También estoy asumiendo que su aplicación no tiene una función de diferenciación que siga el concepto de "abstracción".

Hice un poco de búsqueda y encontré una aplicación (ExamXML) que parece acercarse con características destacadas. He descargado la versión de evaluación y probado sus archivos contra ella:

http://www.programmedintheusa.com/images/stack547399.png

Se hace un muy buen trabajo de poner de relieve las diferencias. Parece bastante interactivo y aparece con cuántas diferencias. Parece que puede cambiar los colores que usa, por lo que tal vez pueda usar grises y blancos para quitar énfasis a las etiquetas. También parece tener muchas opciones que puede preconfigurar también para sus usuarios.

Quiero señalar que será difícil encontrar una herramienta de comparación XML que no muestre los nombres de las etiquetas, ya que las etiquetas son las que dan el contexto del contenido. Si elimina el contexto, se vuelve difícil comprender los datos que se muestran. De todos modos, tal vez esta herramienta podría ser útil. También ha intentado mostrar a sus usuarios algunas de estas herramientas y ver qué están dispuestos a tolerar, a veces pueden sorprenderlo. ¡Espero que esto ayude!

+0

Gracias John, esta es la mejor respuesta hasta el momento. – joe

+0

¿Qué había en la imagen antes de quitarla? ¿Una captura de pantalla? –

+0

@JirkaHanika Sí. No estoy seguro de por qué se fue así. –

0

¿Has probado examdiff? Por supuesto, sigue siendo una herramienta tecnológica, pero es fácil trabajar con ella. Tiene una interfaz de arrastrar y soltar para comparar archivos.

-1

Siempre uso kdiff3. Es fácil de usar y puede comparar hasta 3 archivos. http://kdiff3.sourceforge.net/

+0

¿Es XML sensible? No lo creo, creo que solo los trata como archivos de texto sin formato y, por lo tanto, diffices de puntos que no existen en el infoset de XML (como un cambio de codificación). – bortzmeyer

+0

tiene razón; es la única comparación de texto. – mspoerr

1

Try Bloc de notas XML de Microsoft MSDN XML Tiene una comparación de archivos XML. No tengo idea de lo bueno que es.

2

que no tiene comparación es excelente como @BobbyShaftoe ya se ha mencionado. Sin embargo, para fusionar, me gusta usar Araxis Merge. Lo usamos para propósitos similares con bastante frecuencia.

En cuanto a su comentario acerca de la capacidad no técnico de los usuarios:

Gracias por las respuestas ... Pero todos éstos parecen demasiado técnico. Mis usuarios normalmente no ven las etiquetas xml porque su herramienta de creación de XML las abstrae. ¿Hay alguna herramienta que muestre diferencias en el contenido del texto, pero no muestre (o elimine el énfasis) las etiquetas xml?

Voy a tirar esto: sus usuarios deberían aprender.Si los fusionas y cambias los archivos XML (supongo que es posible que mantengan registros o la configuración de las aplicaciones), deben tener al menos una comprensión rudimentaria de lo que están haciendo. No es necesario que sean usuarios de XML para utilizar las herramientas enumeradas y realizar el trabajo.

Si, sin embargo, es imposible que sus usuarios tengan un conocimiento rudimentario del trabajo que están haciendo, entonces les sugiero que escriban una utilidad de configuración y la entreguen a sus usuarios finales, en lugar de confiar en un software de terceros.

0

Puede encontrar The XML Diff and Patch GUI Tool (código de muestra en MSDN) satisface sus necesidades un poco mejor: todavía muestra etiquetas, pero enfatiza la diferencia en el texto. Ya que obtiene el código, para un poco más de esfuerzo puede adaptarlo de manera más precisa a sus necesidades.

Aunque la muestra es relativamente antigua (julio de 2004, y tiene sus raíces en 2002) se actualiza sin problemas a Visual Studio Express C# 2008. No se desanime al descargar sample desde el sitio MSDN si/cuando el instalador MSI menciona "SQLXML Bulkload en muestra de código .NET" - ¡no lo es!

+0

Gracias por el enlace. Ejecuté la utilidad en algunos archivos que el usuario haría, y la salida de comparación fue un buen formato. Desafortunadamente marcó incorrectamente algunos de los xml como diferentes cuando no lo era. – joe

3

Podría probar DeltaXML + una transformación XSLT para obtener el resultado específico que desee. Un problema con el uso de herramientas de comparación de texto plano con XML es que la forma física de un documento XML (su sangría, etc.) puede cambiar incluso si el contenido en sí no lo hace, lo que podría generar muchos falsos positivos. DeltaXML es una herramienta muy buena para comparar XML basado en documentos.

Además, dependiendo del editor que usen los usuarios, puede tener integrada la diferenciación XML. Por ejemplo, Arbortext Editor tiene una buena herramienta que muestra el texto (no las etiquetas) con los cambios resaltados/tachado.

+0

Esto parece una buena solución, aunque en el extremo costoso ($ 500 por usuario). – joe

0

Ya sea programáticamente o UI, puede usar las herramientas XmlDiff, XmlPatch y la biblioteca de MSDN Para obtener detalles sobre cómo funciona, consulte la guía.

http://msdn.microsoft.com/en-us/library/aa302294.aspx

+0

He probado esto y muestra resultados incorrectos. – joe

3

Altova diffDog XML Spy y DiffDog son herramientas excepcionales. Sacarlos de mis frías manos muertas, un poco de cosas.

0

Oxygen XML Editor tiene la mejor herramienta de colección XML diff que he encontrado. Hay varios algoritmos diferentes para comparar, por lo que si el valor predeterminado no funciona para usted, intente con Syntax Aware o algunos de los otros algoritmos (ahora, estoy usando la versión 8 y no actualicé a la versión 10 por lo que ymmv, pero dudo que la diferencia XML ha empeorado).

17

No soy nadie sorprendió mencionado de XML NotePad

Es gratis y se puede crear una muy buena comparación, narración de qué elementos/atributos han cambiado, movido, ha eliminado, etc .:

(Lo siento si Microsoft las capturas de pantalla son un poco amplias).

También puede aplicar XLSes al archivo XML y hacer varias operaciones de edición. Bien vale la pena intentarlo.

+1

¿Puede decirme cómo llegar a la función de comparación? Gracias. – joe

+2

Claro.Abre un archivo xml, luego va al menú "ver" y hace clic en "comparar archivos XML" – Sylverdrag

+0

. Probé XMLNotepad y lo encontré muy interesante. Gracias por sugerir eso. – paradisonoir

0

Sé que este es un hilo antiguo, pero Project: Merge es una nueva aplicación de Windows que puede gestionar fusiones bidireccionales y tripartitas y comparaciones de archivos XML. (Una operación de tres vías supone que hay dos archivos derivados de un archivo base común).

Es posible que necesite decirle cómo identificar elementos individuales para que funcionen perfectamente en sus archivos, pero eso es bastante fácil de hacer , y solo necesitarás hacerlo una vez.

Cuestiones relacionadas