खोज…


टिप्पणियों

हालांकि encoding/xml पैकेज के कई उपयोगों में एक गो struct लिए मार्शलिंग और अनमैर्शलिंग शामिल हैं, यह ध्यान देने योग्य है कि यह प्रत्यक्ष मैपिंग नहीं है। पैकेज प्रलेखन राज्यों:

XML तत्वों और डेटा संरचनाओं के बीच मानचित्रण स्वाभाविक रूप से त्रुटिपूर्ण है: XML तत्व अनाम मानों का एक क्रम-निर्भर संग्रह है, जबकि एक डेटा संरचना नाम-मानों का एक क्रम-स्वतंत्र संग्रह है।

सरल, अनियंत्रित, कुंजी-मूल्य वाले जोड़े के लिए, एक अलग एन्कोडिंग का उपयोग करना जैसे कि Gob या JSON एक बेहतर फिट हो सकता है। ऑर्डर किए गए डेटा या डेटा के इवेंट / कॉलबैक आधारित धाराओं के लिए, XML सबसे अच्छा विकल्प हो सकता है।

डेटा के साथ नेस्टेड तत्वों की बुनियादी डिकोडिंग / अनमर्सहॉलिंग

XML तत्वों में अक्सर घोंसला होता है, विशेषताओं और / या चरित्र डेटा के रूप में डेटा होता है। इस डेटा को कैप्चर करने का तरीका उन मामलों के लिए क्रमशः ,attr और ,chardata का उपयोग करके है।

var doc = `
<parent>
  <child1 attr1="attribute one"/>
  <child2>and some cdata</child2>
</parent>
`

type parent struct {
    Child1 child1 `xml:"child1"`
    Child2 child2 `xml:"child2"`
}

type child1 struct {
    Attr1 string `xml:"attr1,attr"`
}

type child2 struct {
    Cdata1 string `xml:",cdata"`
}

func main() {
    var obj parent
    err := xml.Unmarshal([]byte(doc), &obj)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(obj.Child2.Cdata1)

}

Playground



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow