एक्सएमएल दस्तावेजों को विलय करने के संबंध में मैंने जो समाधान किए हैं, वे मेरी इच्छा पूरी नहीं करते हैं। मुझे स्पष्ट करने दें:एक्सएमएल दस्तावेजों का विलय
एक्सएमएल दस्तावेज़ 1:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="Original Section">
<b title="Original Child Section"></b>
<b title="Original Child Section 2"></b>
</b>
</a>
एक्सएमएल दस्तावेज़ 2:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="Original Section">
<b title="Original Child Section">
<b title="New Child For Old Section"></b>
</b>
<b title="Original Child Section 2"></b>
</b>
<b title="New Section">
<b title="New Child Section"></b>
</b>
</a>
दस्तावेजों की सामग्री में समान हैं:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="New Section">
<b title="New Child Section"></b>
</b>
<b title="Original Section">
<b title="Original Child Section">
<b title="New Child For Old Section"></b>
</b>
</b>
</a>
इस तरह एक अंतिम दस्तावेज़ में , लेकिन बाल नोड्स की मनमानी संख्या हो सकती है। मैं डुप्लिकेट को खत्म करना भी चाहूंगा। मैं डुप्लिकेट को समान गुणों वाले तत्वों (विशेषता नाम और मान के आधार पर) मानता हूं। क्या किसी ने इस कार्यान्वयन का एक कामकाजी उदाहरण देखा है? मैं कल्पना कर सकता हूं कि मैं इसे कुछ लूप और थोड़ी सी रिकर्सन का उपयोग करके कैसे लिखूंगा, लेकिन मेरे लिए, यह सिर्फ मुझे जो कुछ चाहिए उसे पूरा करने का सबसे अच्छा तरीका प्रतीत नहीं होता है :)
चीयर्स और अग्रिम धन्यवाद!
* संपादित *
के बाद आम सहमति नहीं है छोरों और प्रत्यावर्तन बहुत जरूरी हैं कि, क्या सबसे खूबसूरत और कारगर तरीका यह पूरा करने के हो सकता है? मुझे लगता है कि इस समस्या के लिए एक और मौलिक सवाल यह है कि नोड्स की तुलना करने के लिए सबसे अच्छा तरीका क्या है?
मैंने ग्राहक के लिए ऐसा कुछ लागू किया। यह मूल रूप से वैसे ही काम करता है जिस तरह से आप इसे लागू करेंगे: लूप और रिकर्सन का उपयोग करना। –
अच्छा उदाहरण के लिए +1 –
मैं @DanielHilgarth से सहमत हूं। लूपिंग और रिकर्सिंग मूल रूप से इसे पूरा करने का सबसे आसान तरीका है। – Kian