"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में डायनामिक विशेषताओं के साथ एक्सएमएल को अनमर्शल कैसे करें?

गो में डायनामिक विशेषताओं के साथ एक्सएमएल को अनमर्शल कैसे करें?

2024-11-18 को प्रकाशित
ब्राउज़ करें:679

How to Unmarshal XML with Dynamic Attributes in Go?

गोलंग: डायनामिक विशेषताओं के साथ एक्सएमएल को अनमर्शलिंग करना

परिचय:
गो में, एन्कोडिंग/एक्सएमएल एक प्रदान करता है XML डेटा को संभालने का कुशल और बहुमुखी तरीका। हालाँकि, गतिशील विशेषताओं वाले XML तत्वों के साथ काम करते समय, अज्ञात संख्या और मौजूद विशेषताओं के प्रकार के कारण अनमर्शलिंग चुनौतीपूर्ण हो जाती है।

प्रश्न:
आप XML टैग को कैसे अनमर्शल कर सकते हैं गो में गतिशील विशेषताएँ जब आप उन सटीक विशेषताओं का अनुमान नहीं लगाते हैं जो होंगी सामना हुआ?

उत्तर:
2017 के अंत से पहले, यह गो के XML अनमर्शलिंग में सीधे समर्थित नहीं था। हालाँकि, एन्कोडिंग/एक्सएमएल पैकेज में प्रगति के साथ, इस कार्यक्षमता को लागू किया गया है। विशेषताएँ []xml.Attr `xml:",any,attr"` }

यह कैसे काम करता है यह बताने के लिए यहां एक उदाहरण दिया गया है:

type MyStruct struct {
    Attributes []xml.Attr `xml:",any,attr"`
}

इस उदाहरण में, MyStruct प्रकार विशेषताएँ नामक फ़ील्ड को परिभाषित करता है। xml:"...,any,attr" टैग अनमर्शलर को इस फ़ील्ड में किसी भी XML विशेषता को xml.Attr स्लाइस के रूप में निर्दिष्ट करने का निर्देश देता है। v संरचना के गुण फ़ील्ड में अज्ञात विशेषताओं (ATTR1 और ATTR2) को सफलतापूर्वक अनमर्शल करता है। यह विभिन्न विशेषता सेटों के साथ XML तत्वों के गतिशील प्रबंधन की अनुमति देता है।

package main

import (
    "encoding/xml"
    "fmt"
)

func main() {
    type MyStruct struct {
        Attributes []xml.Attr `xml:",any,attr"`
    }

    data := ``

    var v MyStruct

    if err := xml.Unmarshal([]byte(data), &v); err != nil {
        panic(err)
    }

    fmt.Println(v.Attributes)
}
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3