मेरे पास दो XML दस्तावेज़ हैं जो मैंने बनाए हैं और मैं इन दोनों को एक नए लिफाफे के अंदर जोड़ना चाहता हूं। इसलिए मैंजावा मौजूदा दस्तावेज़ों में XML दस्तावेज़ों को जोड़ रहा है
<alert-set>
<warning>National Weather Service...</warning>
<start-date>5/19/2009</start-date>
<end-date>5/19/2009</end-date>
</alert-set>
और
<weather-set>
<chance-of-rain type="percent">31</chance-of-rain>
<conditions>Partly Cloudy</conditions>
<temperature type="Fahrenheit">78</temperature>
</weather-set>
है मैं क्या करना चाहते हैं क्या है एक रूट नोड के अंदर दो गठबंधन: < डेटासेट> संयुक्त डॉक्स </डेटासेट>
मैंने अस्थायी दस्तावेज़ बनाने और दस्तावेज़ों के रूट नोड्स के साथ बच्चों को बदलने की कोशिश की:
<DataSet>
<blank/>
<blank/>
</DataSet>
और मैं दो दस्तावेजों के मूल तत्वों के साथ दो रिक्त स्थानों को प्रतिस्थापित करने की उम्मीद कर रहा था लेकिन मुझे "WRONG_DOCUMENT_ERR: एक नोड का उपयोग किसी अन्य दस्तावेज़ में किया गया है जो इसे बनाया गया है।" मैंने रूट नोड्स को अपनाने और आयात करने की कोशिश की लेकिन मुझे एक ही त्रुटि मिल गई।
क्या प्रत्येक नोड के लिए नए तत्वों को पढ़ने और बनाने के बिना दस्तावेज़ों को संयोजित करने का कोई आसान तरीका नहीं है?
संपादित करें: नमूना कोड स्निपेट बस एक के लिए "रिक्त" दस्तावेज़ में स्थानांतरित करने का प्रयास कर रहा है ... importNode और adoptNode फ़ंक्शन दस्तावेज़ नोड्स को आयात/अपनाने नहीं कर सकते हैं, लेकिन वे तत्व नोड और इसके उप-आयात को आयात नहीं कर सकते ... या यदि ऐसा होता है, तो यह अभी भी संलग्न/प्रतिस्थापित करने के लिए काम नहीं कर रहा है।
Document xmlDoc; //created elsewhere
Document weather = getWeather(latitude, longitude);
Element weatherRoot = weather.getDocumentElement();
Node root = xmlDoc.getDocumentElement();
Node adopt = weather.adoptNode(weatherRoot);
Node imported = weather.importNode(weatherRoot, true);
Node child = root.getFirstChild();
root.replaceChild(adopt, child); //initially tried replacing the <blank/> elements
root.replaceChild(imported, child);
root.appendChild(adopt);
root.appendChild(imported);
root.appendChild(adopt.cloneNode(true));
ये सब फेंक DOMException: WRONG_DOCUMENT_ERR: एक नोड एक है कि उसे बनाया से एक अलग दस्तावेज़ में प्रयोग किया जाता है।
मुझे लगता है कि मुझे यह पता लगाना होगा कि कैसे स्टैक्स का उपयोग करना है या दस्तावेजों को फिर से पढ़ना और नए तत्व बनाना ... ऐसा लगता है कि दस्तावेज़ों को गठबंधन करने के लिए बहुत अधिक काम लगता है।
क्या आप उदाहरण कोड पोस्ट कर सकते हैं यह दिखाते हुए कि आप उन्हें गठबंधन करने का प्रयास कैसे कर रहे हैं? – Jonik