2010-08-05 7 views
10

Estoy buscando una herramienta de control de versiones de código abierto que pueda diferir y combinar archivos XML.Control de versiones con XML diff y merge

La dificultad que tengo para encontrar una herramienta de este tipo es que necesito una combinación correcta de un archivo XML que compara los nodos y no las líneas.

¿Alguna idea? Gracias!

+0

Soluciones probables: [Herramientas Diff/Merge Xml gratuitas] (http://stackoverflow.com/questions/1871076), [XML Diff and Merge] (http://stackoverflow.com/questions/430001) –

Respuesta

2

Algo que he usado en el pasado es diffxml. Es posible que pueda usar esto como su comando diff para un VCS como svn o git.

6

Desafortunadamente, no hay una solución única para este problema. XML diffing es muy sensible a lo que USTED considera diferente. En un caso, el orden de los nodos secundarios podría ser importante, y en otro caso (tal vez incluso en el mismo archivo) podría ser irrelevante.

Eche un vistazo a XMLUnit. Aunque está dirigido a pruebas unitarias, es un motor completo de diferenciación XML. Debe indicar (en el código) cómo determinar que dos nodos son elegibles para la comparación, y luego qué hacer con todas las diferencias de potencial encontradas (es decir, si son reales o no, en su aplicación). Detecta una lista exhaustiva de los "eventos de diferencia", incluyendo

  • fin Atributo
  • número de atributos
  • fin nodo
  • Niño
  • número de nodos secundarios
  • implícita vs atributo explícito valora
  • comentario diferencias
  • doctype diferencias
  • namespac e diferencias

Y mucho más. Cualquiera de estos puede ser importante o no importante para su aplicación, y solo usted puede decidir. Vale la pena echarle un vistazo, pero tomará un poco de trabajo conseguir lo que quieres.

1

Está buscando una herramienta de diferencias, que es solo un subconjunto de lo que es un VCS. Todos los VCS pueden usar un programa externo para diferir archivos. Dado que la herramienta diff externa puede ser cualquier cosa, también podría ser una secuencia de comandos escrita por usted, que está diseñada para analizar y comparar dos documentos XML.

No sé si esto hace que sea más fácil para usted encontrar lo que está buscando, pero podría ser.

-2

Como otros señalaron, solo necesitas una buena herramienta de diferenciación, no los vcs.

Lamentablemente, no he oído hablar de ninguna herramienta gráfica de diferencias que admita xml. Así que usaría una herramienta diff regular como (winmerge o k3diff) y luego validaría el xml resultante de la fusión con cualquier herramienta de validación xml que desee.

-1

Debe ser una herramienta todo en uno simple para usuarios ficticios/perezosos. Las API o los programas de consola no encajan. Realmente parece que no existe en el mundo de código abierto.

Clearcase puede hacerlo pero es caro. Oxygen puede combinar pero tampoco es gratis.

+1

debe probablemente convierta esto en una sección de actualización de preguntas. Esta no es una respuesta. El programa de consola – firegurafiku

+0

es perfecto siempre que solo requiera un comando – Mike76

2

Project: Merge fue diseñado para resolver este problema exacto: Comparación y fusión de archivos XML a través del software SCM.

Me temo que tampoco es gratis, pero es significativamente más económico que otras herramientas que afirman poder comparar y fusionar XML.

Cuestiones relacionadas