क्या कोई मुफ्त Xml डिफ / मर्ज उपकरण उपलब्ध हैं? [बन्द है]


105

मेरे पास मेरे .net अनुप्रयोगों में कई कॉन्फ़िगर फाइलें हैं जो मैं एप्लिकेशन सेटिंग्स तत्वों आदि को मर्ज करना चाहता हूं।

मैं इसे मैन्युअल रूप से करना शुरू करने वाला था जैसा कि मैं आमतौर पर करता हूं, लेकिन सोचा कि कहीं ना कहीं एक XML diff GUI टूल उपलब्ध होना चाहिए।

अंतर की तुलना करने और प्रदर्शित करने के लिए उपकरण तत्व स्तर पर जाने में सक्षम होगा।

हालाँकि Google ने किसी भी तरह के मूल्य के लिए कोई ठोस उपकरण नहीं दिए और कोई संकेत नहीं दिया।

क्या ऐसा कोई उपकरण उपलब्ध है? यह बहुत उपयोगी है? मुफ्त का?

अग्रिम में धन्यवाद। :)

संपादित करें:

यहां कार्यक्षमता का एक छोटा सा स्पष्टीकरण है जो मेरी त्रुटि-प्रवण, थकाऊ मैनुअल नौकरी को 1 मिनट के सरल कार्य (और स्वचालित करने की क्षमता) में बदल देगा:

KDiff3 में, आप संपूर्ण निर्देशिकाओं का एक अंतर / विलय कर सकते हैं। एक पदानुक्रमित अंतर है जो बहुत सटीक, उपयोगकर्ता के अनुकूल और स्पष्ट है। मुझे एक समान समाधान खोजने में दिलचस्पी थी, हालांकि निर्देशिका पदानुक्रम के बजाय, एक XML तत्व पदानुक्रम।

अगर ऐसा कोई ओपन सोर्स सॉफ्टवेयर नहीं है, तो मैं इस कार्यक्षमता को प्रदान करने के लिए कोडप्लेक्स पर एक बनाने पर विचार कर रहा हूं।

जवाबों:


11

KDiff3 XML विशिष्ट नहीं है, लेकिन यह मुफ़्त है। यह पाठ फ़ाइलों की तुलना और विलय का एक अच्छा काम करता है।


3
मैं सहमत हूं कि मैं इस समय केडीएफ 3 का उपयोग कर रहा हूं, हालांकि एक्सएमएल के लिए विशेष रूप से एक टूल जो तत्व स्तर तक नीचे जा सकता है वह बहुत अच्छा होगा।
रसेल

2
मैं इस दृष्टिकोण से सोच रहा था: जिस तरह से केडीफ निर्देशिकाओं का एक पदानुक्रमित रूप करता है, तत्वों का एक पदानुक्रमित रूप भी काम कर सकता है। इसलिए अगर कोई तत्व बदल गया है, तो मैं मानता हूं, मूल तत्वों को भी बदल दिया जाना चाहिए।
रसेल

25
हर किसी को पता चलता है कि xml में बच्चे के नोड्स को किसी विशिष्ट क्रम में होने की गारंटी नहीं है, इसलिए किसी भी "उपकरण" ने रिपोर्ट किया कि कुछ एक ही क्रम में एक फ़ाइल से अगली फ़ाइल में नहीं था वास्तव में एक वास्तविक xml अनुरूप उपकरण नहीं होगा

7
यदि आदेश बदलता है, तो तत्व अलग हैं। प्रश्न में XML दस्तावेज़ के शब्दार्थ के आधार पर, आदेश महत्वपूर्ण हो सकता है या नहीं भी हो सकता है। उदाहरण के लिए XHTML में आदेश मायने रखता है।
जॉर्ज लुंड

7
मुद्दा यह है कि एक नियमित रूप से अलग उपकरण काम करता है आधारित लाइन। उदाहरण के लिए CSV फ़ाइलों के लिए विशिष्ट भिन्न उपकरण हैं जो उस प्रारूप को समझते हैं जो इसे अलग कर रहा है। जितनी अच्छी समझ होगी, उतना प्रभावी उतना प्रभावी होगा। एक अच्छा XML अंतर उपकरण XML को पार्स करने में सक्षम होगा, बाधाओं को निर्धारित करने के लिए एक स्कीमा का उपयोग करें जैसे कि उदाहरण के लिए आदेश मायने रखता है, और फिर उस ज्ञान का उपयोग कहीं अधिक प्रभावी अंतर / मर्ज अनुभव देने के लिए करें।
स्टिजन डे विट

32

फ़ाइल तुलना टूल पर एक नज़र डालें , जिसमें से मैं WinMerge का उपयोग कर रहा हूं । इसमें XML दस्तावेजों की तुलना करने की क्षमता है (आप DisplayXMLFilesप्रीफ़िल्टर को सक्षम करना चाह सकते हैं )।

DisplayXMLFiles.dll - यह प्लगइन एक्सएमएल फ़ाइलों को अच्छी तरह से प्रिंट करता है और टैब और लाइन ब्रेक सम्मिलित करता है। यह XML फ़ाइलों के लिए उपयोगी है, जिसमें सुविधाजनक स्थानों में लाइन रिटर्न नहीं है।

WinMerge एक्शन में

मेरी सुविधा तुलना तालिका भी देखें ।


6
+1 Winmerge संस्करण 2.12.4.0; मेनू "प्लगिन" -> "सूची" -> चेक "प्लगिन सक्षम करें"; मेनू "प्लगइन" -> "स्वचालित अनपैकिंग" की जांच करें। एक्सएमएल फ़ाइल एक्सएमएल के साथ फ़ाइल नाम के साथ परीक्षण किया गया है और यह काम करने लगता है।
एलेसैंड्रो जैकप्सन

10
यह अलग-अलग आदेशों में होने के कारण अच्छी तरह से व्यवहार नहीं करता है, इसलिए आपकी स्थिति के आधार पर इसकी उपयोगिता सीमित हो सकती है।
माइकल कोहेन

तत्वों और विशेषताओं को क्रमबद्ध करने के लिए पहले किसी भी XML फ़ाइलों पर इस परिवर्तन का उपयोग करें: stackoverflow.com/questions/4091085/xslt-to-sort-nodes-by-name
LarryDavid

1
ऐसा लगता है कि प्लगइन अब उपलब्ध नहीं है।
फर्नांडो गोंजालेज सांचेज़

मुझे यकीन है कि क्यों यह संस्थापक में नहीं है नहीं कर रहा हूँ, लेकिन मैं bitbucket / स्रोत कोड पर अपनी src रेपो (sourceforge डीएल) से इसे पाने के लिए कर रहा था: bitbucket.org/winmerge/winmerge/src/...
aCodeMonkey

21

मैंने एक विंडोज़ एप्लिकेशन को लिखा और जारी किया जो विशेष रूप से एक्सएमएल फाइलों की तुलना और विलय की समस्या को हल करता है।

प्रोजेक्ट: मर्ज किसी भी XML फ़ाइल के दो और तीन तरह से तुलना और विलय कर सकता है (जहाँ दो फ़ाइलों को एक आम आधार फ़ाइल का स्वतंत्र संशोधन माना जाता है)। आप इसे अन्य बातों के अलावा विशेषता मानों, या बाल तत्वों की सामग्री द्वारा इनपुट फ़ाइलों के भीतर तत्वों की पहचान करने का निर्देश दे सकते हैं।

यह कमांड लाइन के माध्यम से पूरी तरह से चलाया जा सकता है और फ़ाइलों के बीच अंतर वाले पाठ रिपोर्ट भी उत्पन्न कर सकता है।

प्रोजेक्ट: मर्ज तीन XML फ़ाइलों को मर्ज करना


हाय @ जेम्स जानकारी के लिए धन्यवाद। जाहिर है यह अच्छा होगा अगर यह मुफ़्त था, लेकिन यह कुछ बहुत ही शांत कार्यक्षमता प्रदान करता है - और ऊपर दिया गया आपका उदाहरण एक क्लासिक है कि यह उपकरण soooo सहायक क्यों है! आपकी पोस्ट के लिए धन्यवाद। :)
रसेल

मैंने प्रोजेक्ट की कोशिश की है :: विलय और दुर्भाग्य से यह मेरे कार्य के साथ सामना करने में सक्षम नहीं था। मैं पारस में HTML पाठ (है <p>) जोड़ा गया है जो स्वरूपण (जैसे <i>, <em>)। इसलिए प्रोजेक्ट :: मर्ज दिखाता है कि पूरा पैरा बदल गया था, यह गहराई से शब्द विश्लेषण नहीं करता है।
dma_k

हां, मुझे यह कहते हुए खेद है कि एक्सएचटीएमएल (यह लीगेसी एचटीएमएल कभी नहीं करेगा) समर्थन उस संबंध में बहुत सीमित है, जैसा कि सामान्य रूप से एक्सएमएल ब्लॉकों के भीतर पाठ भिन्नता है। अब तक के अधिकांश कार्य कॉन्फ़िगरेशन-शैली XML फ़ाइलों पर केंद्रित हैं, जहां मुफ्त रूप चरित्र डेटा इसकी सीमा और उपयोग में सीमित है। उम्मीद है कि मैं इस परियोजना में सुधार करूंगा: भविष्य में एक रिलीज में इस क्षेत्र में विलय।

2
-1, ओपी ने मुफ्त सॉफ्टवेयर के बारे में पूछा। प्रोजेक्ट मर्ज ट्रायलवेयर है और 3 साल में अपडेट नहीं किया गया है।
Yourbuddypal

3
प्रोजेक्ट: मर्ज को अब Oso XML मर्ज द्वारा बदल दिया गया है: osocorporation.com/xmlmerge/index.php
leetNightshade

15

कुछ जावा आधारित XML अंतर और मर्ज उपकरण यहां सूचीबद्ध हैं:

जावा में लिखा गया ओपन सोर्स XML डिफ

जोड़े गए लिंक:


2
मुझे आपके द्वारा बताए गए लिंक में सॉफ़्टवेयर के किसी भी लिंक को खोजने में परेशानी हो रही है।
रसेल

हाँ मैं भी! Google को थोड़ा-बहुत
इधर-उधर करना पड़ सकता है

3

मैं TortoiseMerge का उपयोग करता हूं, जो TortoiseSVN प्रोग्राम में शामिल है

और हमने इस धागे में फ़ाइल डिफ टूल्स के बारे में बात की है, हालांकि एक्सएमएल के लिए समर्पित नहीं है

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


1
धन्यवाद S.Mark, जैसा कि मैंने epotter का उल्लेख किया है, मैं पहले से ही केडीएफ 3 का उपयोग सामान्य फ़ाइल भिन्नता के लिए करता हूं, हालांकि मैं वास्तव में एक एक्सएमएल विशिष्ट अंतर उपयोगिता पसंद करूंगा यदि यह उपलब्ध है (यदि नहीं, तो मैं एक ओपन-सोर्स एक शुरू करूंगा :))
रसेल

>> (if not, I will start up an open-source one :)वाह, अद्भुत! इसके लिए तत्पर हैं, यदि इसकी शुरुआत होती है, तो कृपया यहां कहीं लिंक छोड़ दें।
आप

3

हालांकि यह कोई GUI उपकरण नहीं है, मेरे त्वरित परीक्षणों ने संकेत दिया कि diffxml में कुछ वादा है। प्रतीत होता है कि लेखक नेस्टेड तत्वों के लिए अलग-अलग तरीके से प्रतिनिधित्व करने की जटिलताओं के बारे में सोचता है (उसका DUL - डेल्टा अपडेटेड स्पेसिफिकेशन)।

अपने औजारों को स्थापित करना और चलाना, मैं कह सकता हूं कि कच्चा पाठ आउटपुट काफी स्पष्ट और संक्षिप्त है। यह GUI उपकरण के रूप में तत्काल आशंका के समान डिग्री प्रदान नहीं करता है, लेकिन यह देखते हुए कि आउटपुट को DUL के रूप में मानकीकृत किया गया है, शायद आप विज़ुअल प्रतिनिधित्व उत्पन्न करने के लिए उस उपकरण को लेने और बनाने में सक्षम होंगे। मैं निश्चित रूप से एक को देखना पसंद करूंगा।

लेखक का "लिंक" खंड कुछ अन्य XML विभेदक उपकरणों का संदर्भ देता है, लेकिन जैसा कि आपने अपनी पोस्ट में उल्लेख किया है, वे सभी मालिकाना हैं।


4
मेरा अनुभव यह है कि: यह तत्वों के पुन: व्यवस्थित करने को संभाल नहीं सकता है, जो कि एक XML उपकरण में अपेक्षित चीज़ है (एक विकल्प के रूप में, क्योंकि कभी-कभी आदेश महत्वपूर्ण होता है), और न्यूनतम भिन्न के बजाय यह पूरे बदले हुए तत्वों को दर्शाता है । मूल रूप से विस्‍तृत फ़ाइल केवल एक पूरी नई XML फ़ाइल है यदि बड़े अर्थ परिवर्तन के बिना बड़े स्वरूपण परिवर्तन होते हैं।
सिल्वरबैक नेट

3

प्रिटी डिफ टूल को XML को ध्यान में रखकर बनाया गया था। बस सुनिश्चित करें कि आप "मार्कअप" के विकल्प पर क्लिक करें।

http://prettydiff.com/


लेकिन यह ऑनलाइन उपकरण है, है ना? मैं बाएं से दाएं या मर्ज में परिवर्तन कैसे लागू कर सकता हूं?
dma_k

आपको सॉर्ट करने के लिए विकल्पों को बदलने की भी आवश्यकता है, अन्यथा यह XML तत्वों को बदल देता है जब वे सभी बदल गए थे (कदम एक्सएमएल में कोई फर्क नहीं पड़ता है इसलिए यह बदलाव के रूप में प्रकट नहीं होना चाहिए)। यह अभी भी उनकी सामग्री के आधार पर नेस्टेड वर्गों को सॉर्ट नहीं करता है, इसलिए आप अभी भी बड़े एक्सएमएल ब्लॉकों के परिवर्धन और निष्कासन देखेंगे जब यह हुआ कि सभी तत्व बदल गए थे, इसलिए एक ठीक-ठीक अंतर प्राप्त करना संभव नहीं है।
माल्विनस



0

यह जावा डेवलपर्स के लिए एक अलग इंजन है, लेकिन यह एक डेमो इंटरफेस के साथ आता है - आप इसका उपयोग करने में सक्षम हो सकते हैं: https://community.emc.com/docs/DOC-5042


0

मैं आपको CodeCompare टूल का उपयोग करने की सलाह देता हूं । यह XML-data के मूल हाइलाइटिंग का समर्थन करता है और यह आपके कार्य के लिए एक अच्छा समाधान हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.