c# - all elments duplicated on adding new element in XML -
मेरे पास ऐसा XML फ़ाइल है
& lt;? Xml संस्करण = "1.0" एन्कोडिंग = "utf-8" & gt; & LT; रूट & gt; & LT; शिक्षक & gt; & Lt; शिक्षक & gt; अली जावेद & lt; / शिक्षक & gt; & Lt; / शिक्षक & gt; & Lt; / रूट & gt; मैं इस तरह गतिशील रूप से नया तत्व जोड़ रहा हूं।
का उपयोग कर (IsolatedStorageFileStream isoStream = नया IsolatedStorageFileStream (शिक्षक XMLPath, FileMode.Open, IsolatedStorageFile.GetUserStoreForApplication ()) ) {String session = tb_session.Text.ToString (); स्ट्रिंग विषय = tb_subject.Text.ToString (); दिनांक समय? _datetime = val_timer.Value; स्ट्रिंग समय = _datetime.Value.Hour + ":" + _datetime.Value.Minute; स्ट्रिंग crdthr = ((ListPickerItem) lst_credithr.SelectedItem) .content.ToString (); स्ट्रिंग टीचर = टीबी_टेचर। टेक्स्ट। टॉस्ट्रिंग (); स्ट्रिंग कक्षा = tb_class.Text.ToString (); स्ट्रिंग day_week = tb_day.Text.ToString (); XDocument लोडेडडेटा = XDocument.Load (isoStream); var tchElement = नया XElement ("शिक्षक"); Var tchr = भारितडेटा। रूट.एलेमेंट ("शिक्षक"); tchr.Add (tchElement); tchElement.Value = शिक्षक; loadedData.Save (isoStream); MessageBox.Show ( "जोड़ा गया"); } लेकिन तत्व को जोड़ने के बजाय यह जोड़ता है और इस तरह के सभी तत्वों को भी डुप्लिकेट करता है।
& lt;? Xml संस्करण = "1.0" एन्कोडिंग = "utf-8" & gt; & LT; रूट & gt; & LT; शिक्षक & gt; & Lt; शिक्षक & gt; शिक्षक 1 & lt; / शिक्षक & gt; & Lt; / शिक्षक & gt; & Lt; / रूट & gt; & Lt;? Xml संस्करण = "1.0" एन्कोडिंग = "यूटीएफ -8"? & Gt; & LT; रूट & gt; & LT; शिक्षक & gt; & Lt; शिक्षक & gt; शिक्षक 1 & lt; / शिक्षक & gt; & Lt; शिक्षक & gt; शिक्षक 2 & lt; / शिक्षक & gt; & Lt; / शिक्षक & gt; & Lt; / रूट & gt;
ऐसा लगता है कि यहाँ क्या हो रहा है यह है कि आप FileMode.Open , XML दस्तावेज़ में पढ़ने के लिए धारा के अंत में पढ़ना, और उसके बाद उस बिंदु पर उस स्ट्रीम को लिखना तो यही कारण है कि आप इस दोहराव का सामना कर रहे हैं। मैं फ़ाइल में एक पहुंच के रूप में पढ़ने का सुझाव देता हूं, और फिर FileMode.Create से फाइल को फिर से खोलता है, ताकि इसे पूरी तरह से लिखा जा सके: <पूर्व> पृथक स्टोरेजफ़ाइल भंडारणफ़ाइल = पृथक स्टोरेजफ़ाइल.नेटयूसरस्टोरफ़ोअरएपिकेशन (); XDocument लोडेडडेटा; (IsolatedStorageFileStream isoStream = नया पृथक स्टोरेजफाइलस्ट्रीम (शिक्षक XMLPath, FileMode.Open, storageFile)) का प्रयोग (लोडेडडेटा = XDocument.Load (isoStream); } (IsolatedStorageFileStream isoStream = नया पृथक स्टोरेजफाइलस्ट्रीम (शिक्षक XMLPath, FileMode.Create, storageFile)) {string session = tb_session.Text.ToString (); स्ट्रिंग विषय = tb_subject.Text.ToString (); दिनांक समय? _datetime = val_timer.Value; स्ट्रिंग समय = _datetime.Value.Hour + ":" + _datetime.Value.Minute; स्ट्रिंग crdthr = ((ListPickerItem) lst_credithr.SelectedItem) .content.ToString (); स्ट्रिंग टीचर = टीबी_टेचर। टेक्स्ट। टॉस्ट्रिंग (); स्ट्रिंग कक्षा = tb_class.Text.ToString (); स्ट्रिंग day_week = tb_day.Text.ToString (); Var tchElement = नया XElement ("शिक्षक"); Var tchr = भारितडेटा। रूट.एलेमेंट ("शिक्षक"); tchr.Add (tchElement); tchElement.Value = शिक्षक; loadedData.Save (isoStream); MessageBox.Show ( "जोड़ा गया"); }
Comments
Post a Comment