Apakah ada alat Diff / Merge Xml gratis yang tersedia? [Tutup]

105

Saya memiliki beberapa file konfigurasi di aplikasi .net saya yang ingin saya gabungkan elemen pengaturan aplikasi, dll.

Saya akan mulai melakukannya secara manual seperti yang biasa saya lakukan, namun saya pikir pasti ada alat XML diff GUI yang tersedia di suatu tempat.

Alat tersebut akan dapat pergi ke level elemen untuk membandingkan dan menampilkan perbedaan, dll.

Namun Google tidak memberikan hasil alat gratis yang substantif dan tidak ada petunjuk apa pun yang berharga.

Apakah alat seperti itu tersedia? Itu sangat berguna? Gratis?

Terima kasih sebelumnya. :)

Edit:

Berikut adalah sedikit klarifikasi tentang fungsionalitas yang akan mengubah pekerjaan manual saya yang rawan kesalahan dan membosankan menjadi tugas 1 menit yang lebih sederhana (dan berpotensi untuk diotomatisasi):

Di KDiff3, Anda dapat melakukan diff / penggabungan seluruh direktori. Ada perbedaan hierarki yang sangat akurat, mudah digunakan, dan jelas. Saya tertarik untuk menemukan solusi serupa, namun alih-alih hierarki direktori, hierarki elemen XML.

Jika tidak ada perangkat lunak sumber terbuka seperti itu, saya mempertimbangkan untuk membuatnya di CodePlex untuk menyediakan fungsionalitas ini.

Russell
sumber

Jawaban:

11

KDiff3 tidak spesifik untuk XML, tetapi gratis. Itu melakukan pekerjaan yang bagus untuk membandingkan dan menggabungkan file teks.

penulis cerita
sumber
3
Saya setuju saya menggunakan KDiff3 saat ini, namun alat khusus untuk XML yang bisa turun ke tingkat elemen akan sangat bagus.
Russell
2
Saya berpikir dari perspektif ini: cara KDiff melakukan diff hierarki pada direktori, perbedaan hierarki elemen juga dapat berfungsi. Jadi jika sebuah elemen telah berubah, maka saya setuju, elemen induk juga harus ditandai sebagai telah berubah.
Russell
25
semua orang menyadari bahwa dalam xml node anak tidak dijamin berada dalam urutan tertentu, jadi "alat" apa pun yang melaporkan bahwa ada sesuatu yang tidak dalam urutan yang sama dari satu file ke file berikutnya benar-benar tidak akan menjadi alat yang sesuai dengan xml nyata
7
Jika urutannya berubah, maka elemennya berbeda. Bergantung pada semantik dokumen XML yang dipermasalahkan, urutannya mungkin, atau mungkin tidak, signifikan. Misalnya dalam XHTML jelas urutannya penting.
George Lund
7
Intinya adalah bahwa alat diff biasa bekerja berdasarkan garis. Ada alat berbeda khusus untuk misalnya file CSV yang memahami format yang berbeda. Semakin baik pemahaman tersebut, semakin efektif perbedaan tersebut dapat terjadi. Alat diff XML yang baik akan dapat mengurai XML, menggunakan skema untuk menentukan batasan seperti apakah urutan penting misalnya, dan kemudian menggunakan pengetahuan itu untuk memberikan pengalaman diff / merge yang jauh lebih efektif.
Stijn de Witt
32

Lihatlah alat perbandingan file , dari mana saya menggunakan WinMerge . Ia memiliki kemampuan untuk membandingkan dokumen XML (Anda mungkin ingin mengaktifkan DisplayXMLFilesprefilter).

DisplayXMLFiles.dll - Plugin ini mencetak file XML dengan cantik dengan memasukkan tab dan jeda baris. Ini berguna untuk file XML yang tidak memiliki garis kembali di lokasi yang nyaman.

WinMerge beraksi

Lihat juga tabel perbandingan fitur saya .

dma_k
sumber
6
+1 Winmerge versi 2.12.4.0; Menu "Plugin" -> "List" -> centang "Enable Plugins"; Menu "Plugin" -> centang "Pembongkaran otomatis". Diuji dengan file XML dengan nama file dengan ekstensi .xml dan tampaknya berfungsi.
Alessandro Jacopson
10
Ini tidak sesuai dengan atribut yang berada dalam urutan berbeda, jadi kegunaannya mungkin terbatas, tergantung pada situasi Anda.
Michael Kohne
Gunakan transformasi ini pada file XML apa pun terlebih dahulu untuk mengurutkan elemen dan atribut: stackoverflow.com/questions/4091085/xslt-to-sort-nodes-by-name
LarryDavid
1
Sepertinya plugin tidak lagi tersedia.
Fernando Gonzalez Sanchez
Saya tidak yakin mengapa hal ini tidak di installer, tapi saya bisa mendapatkannya dari repo src mereka pada bitbucket / kode sumber (sourceforge DL): bitbucket.org/winmerge/winmerge/src/...
aCodeMonkey
21

Saya menulis dan merilis aplikasi Windows yang secara khusus memecahkan masalah membandingkan dan menggabungkan file XML.

Proyek: Penggabungan dapat melakukan perbandingan dua dan tiga cara dan menggabungkan file XML apa pun (di mana dua file dianggap sebagai revisi independen dari file dasar umum). Anda dapat menginstruksikannya untuk mengidentifikasi elemen dalam file input dengan nilai atribut, atau konten elemen anak, antara lain.

Ini sepenuhnya dapat dikontrol melalui baris perintah dan juga dapat menghasilkan laporan teks yang berisi perbedaan antara file.

Proyek: Menggabungkan tiga file XML

UuDdLrLrSs
sumber
Hai @James Terima kasih atas infonya. Jelas akan menyenangkan jika itu gratis, tetapi itu memang menyediakan beberapa fungsi yang sangat keren - dan contoh Anda di atas adalah klasik mengapa alat ini sangat membantu! Terima kasih atas kiriman Anda. :)
Russell
Saya sudah mencoba Project :: Merge dan sayangnya itu tidak dapat mengatasi tugas saya. Saya memiliki teks HTML di paras ( <p>) yang ditambahkan pemformatan (seperti <i>, <em>). Jadi Project :: Merge menunjukkan bahwa para lengkap telah diubah, itu tidak melakukan analisis kata yang mendalam.
dma_k
Ya, saya minta maaf untuk mengatakan bahwa dukungan XHTML (tidak akan pernah melakukan HTML lama) sangat terbatas dalam hal itu, seperti perbedaan teks dalam blok XML pada umumnya. Sebagian besar pekerjaan sejauh ini telah difokuskan pada file XML gaya konfigurasi di mana data karakter bentuk bebas dibatasi dalam jangkauan dan penggunaannya. Mudah-mudahan saya akan meningkatkan Project: Merge in this area di rilis mendatang.
2
-1, OP bertanya tentang perangkat lunak bebas. Project Merge adalah trialware dan juga belum diperbarui dalam 3 tahun.
yourbuddypal
3
Project: Merge sekarang telah digantikan oleh Oso XML Merge: osocorporation.com/xmlmerge/index.php
leetNightshade
3

Saya menggunakan TortoiseMerge, yang disertakan dalam program TortoiseSVN

Dan kami telah berbicara tentang alat File Diff di utas ini, meskipun tidak didedikasikan untuk XML

/programming/1830962/file-differencing-software-on-windows

KAMU
sumber
1
Terima kasih S.Mark, seperti yang saya sebutkan ke epotter, saya sudah menggunakan KDiff3 untuk diff file umum, namun saya lebih suka utilitas diff khusus XML jika tersedia (jika tidak, saya akan memulai yang open-source :))
Russell
>> (if not, I will start up an open-source one :)Wow, luar biasa! akan menantikannya, silakan jatuhkan tautan di suatu tempat di sini Jika dimulai.
ANDA
3

Meskipun ini bukan alat GUI, pengujian cepat saya menunjukkan bahwa diffxml menjanjikan. Penulis tampaknya telah memikirkan tentang kompleksitas merepresentasikan diff untuk elemen bersarang dengan cara standar (spesifikasi DUL - Delta Update Language).

Menginstal dan menjalankan alatnya, saya dapat mengatakan bahwa keluaran teks mentah cukup jelas dan ringkas. Ini tidak menawarkan tingkat pemahaman langsung yang sama dengan alat GUI, tetapi mengingat bahwa keluarannya distandarisasi sebagai DUL, mungkin Anda dapat mengambilnya dan membangun alat untuk menghasilkan representasi visual. Saya pasti ingin melihatnya.

Bagian "link" penulis mereferensikan beberapa alat pembeda XML lainnya, tetapi seperti yang Anda sebutkan di posting Anda, semuanya adalah hak milik.

Jarret Hardie
sumber
4
Pengalaman saya adalah: Ia tidak dapat menangani pengurutan ulang elemen sama sekali, yang merupakan sesuatu yang diharapkan dalam alat XML (sebagai opsi, karena terkadang urutan itu penting), dan bukannya perbedaan minimal, ia menunjukkan seluruh elemen yang diubah . Pada dasarnya file diff hanyalah file XML baru jika ada perubahan format besar tanpa perubahan semantik yang besar.
SilverbackNet
3

Alat Pretty Diff dibuat dengan XML dalam pikiran. Pastikan Anda mengklik opsi untuk "markup".

http://prettydiff.com/

austincheney.dll
sumber
Tapi itu alat online, bukan? Bagaimana cara menerapkan perubahan dari kiri ke kanan atau menggabungkan?
dma_k
Anda juga perlu mengubah opsi untuk pengurutan, jika tidak, elemen XML akan ditandai sebagai diubah ketika semua yang mereka lakukan adalah dipindahkan (urutan tidak masalah dalam XML jadi ini seharusnya tidak muncul sebagai perubahan). Itu masih tidak mengurutkan bagian bersarang berdasarkan isinya, jadi Anda masih akan melihat penambahan dan penghapusan blok XML besar ketika semua yang terjadi adalah elemen yang diubah urutannya, jadi tidak mungkin untuk mendapatkan perbedaan yang halus.
Malvineous
2

A7Soft menyediakan alat perbandingan XML freeware dan shareware:

http://www.a7soft.com

Andrew Lapick
sumber
0

Ini adalah mesin yang berbeda untuk pengembang java, tetapi dilengkapi dengan antarmuka demo - Anda mungkin dapat menggunakannya: https://community.emc.com/docs/DOC-5042

AP.
sumber
0

Saya menyarankan Anda untuk menggunakan alat CodeCompare . Ini mendukung penyorotan asli dari data XML dan ini bisa menjadi solusi yang baik untuk tugas Anda.

JackD
sumber