c# - XElement.SetElementValue overwrites elements -
मेरे पास निम्न संरचना है:
& lt; रूट नाम = "जैक" & gt ; & LT; Ele1 & gt; 4 & lt; / Ele1 & gt; & LT; Ele2 & gt; 4 & lt; / Ele2 & gt; & LT; Ele3 & gt; 4 & lt; / Ele3 & gt; & LT; Ele4 & gt; 4 & lt; / Ele4 & gt; & Lt; / रूट & gt;
मैं कुछ मानों को संशोधित करना चाहता हूं ताकि मैं निम्नलिखित कोड का उपयोग कर सकूं:
XElement root1 = नया XElement ("रूट"); रूट 1 .सेट ऐटिट्यूवल ("नाम", "जैक"); रूट 1 .सेट एलेमेंटवॉल्यू ("Ele1", 1); Root1.SetElementValue ("Ele2", 2); रूट 1 .सेट एलेमेंट वैल्यू ("एले 3", 3);
इसका नतीजा एक नई संरचना है:
& lt; रूट नाम = "जैक" & gt; & LT; Ele3 & gt; 3 & lt; / Ele3 & gt; & Lt; / रूट & gt;
यदि मैं Ele1 के मान को सेट करने के बाद रूट 1 डीबग। लॉग (रूट 1)
प्रिंट करता हूं:
& lt; रूट नाम = "जैक" & gt; & LT; Ele2 & gt; 2 & lt; / Ele2 & gt; & Lt; / रूट & gt;
यदि मैं Ele1 के मान सेट करने के बाद करता हूं।
मैं सी # & amp; यूनिटी 3 डी के लिए मोनो डेवलप।
यह एकता 3 डी के साथ एक समस्या है क्योंकि यह बहुत आसान है कोड। जैसे मैंने कहा, संरचना है, इसलिए मैं इसे सीधे संशोधित करने के बजाय पहले पढ़ सकता हूं। XML फ़ाइल से root1
पढ़ने के बाद मैंने क्या किया है:
स्ट्रिंग का नाम; विदेशी (एक्सलेमेंट एट रूट 1। एलेमेंट्स ()) {name = ele.Name.LocalName; If (! DoNotChange.Contains (name)) ele.SetValue (PlayerPrefs.GetInt (name)); }
जहां doNotChange
स्ट्रिंग्स की एक सूची है जिसमें उन तत्व शामिल हैं जिन्हें मुझे संशोधित करने की आवश्यकता नहीं है I मुझे वाकई पता नहीं है कि क्यों SetElementValue
यूनिटी 3 डी में काम नहीं करता है लेकिन SetValue
करता है मैंने इसे यूनिटी 3 डी के लिए बताया है मैं उनके उत्तर के साथ पोस्ट को संपादित करूंगा।
संपादित करें: एकता क्यूए टीम ने मुझे उत्तर दिया
अरे,
हम इस बग को पुन: उत्पन्न करने में सक्षम हैं और हमारे डेवलपर्स के साथ संकल्प के लिए इसे भेजा है ।
हम आपके योगदान की अत्यधिक प्रशंसा करते हैं। अगर आपके पास और प्रश्न हैं, तो बेझिझक हमसे संपर्क करें।
Comments
Post a Comment