Go Academy · पाठ

encoding/xml

XML के साथ काम करें

पाठ 2, कुल 4 में से13 चरण

encoding/xml, CoddyKit पर Go Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Go Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

XML के साथ काम करना

XML एक विस्तृत, टैग-आधारित प्रारूप है, जो पुराने सिस्टम और कॉन्फ़िगरेशन में अब भी सामान्य है। Go का encoding/xml पैकेज इसे json पैकेज के समान ही मार्शल और अनमार्शल करता है।

XML में Marshal करना

xml.Marshal किसी Go मान को XML बाइट्स में बदलता है।

package main

import (
	"encoding/xml"
	"fmt"
)

type User struct {
	Name string
	Age  int
}

func main() {
	b, _ := xml.Marshal(User{"Ann", 30})
	fmt.Println(string(b))
}

XML टैग

xml टैग एलिमेंट के नाम नियंत्रित करता है, ठीक वैसे ही जैसे json टैग JSON कुंजियों को नियंत्रित करते हैं।

package main

import (
	"encoding/xml"
	"fmt"
)

type User struct {
	Name string "xml:\"name\""
}

func main() {
	b, _ := xml.Marshal(User{"Ann"})
	fmt.Println(string(b))
}

XMLName से मूल एलिमेंट

xml.Name प्रकार का XMLName नाम वाला फ़ील्ड मूल एलिमेंट का नाम निर्धारित करता है।

package main

import (
	"encoding/xml"
	"fmt"
)

type User struct {
	XMLName xml.Name "xml:\"user\""
	Name    string   "xml:\"name\""
}

func main() {
	b, _ := xml.Marshal(User{Name: "Ann"})
	fmt.Println(string(b))
}

विशेषताएँ

किसी फ़ील्ड को चाइल्ड एलिमेंट के बजाय XML विशेषता के रूप में दिखाने के लिए टैग में ,attr जोड़ें।

package main

import (
	"encoding/xml"
	"fmt"
)

type User struct {
	XMLName xml.Name "xml:\"user\""
	ID      int      "xml:\"id,attr\""
	Name    string   "xml:\"name\""
}

func main() {
	b, _ := xml.Marshal(User{ID: 7, Name: "Ann"})
	fmt.Println(string(b))
}

XML को Unmarshal करना

xml.Unmarshal XML बाइट्स को पॉइंटर में पार्स करता है और एलिमेंट के नामों का टैग से मिलान करता है।

package main

import (
	"encoding/xml"
	"fmt"
)

type User struct {
	Name string "xml:\"name\""
}

func main() {
	var u User
	xml.Unmarshal([]byte("<User><name>Bob</name></User>"), &u)
	fmt.Println(u.Name)
}

नेस्टेड एलिमेंट

नेस्टेड संरचनाएँ नेस्टेड XML एलिमेंट में मैप होती हैं और एक ट्री बनाती हैं।

package main

import (
	"encoding/xml"
	"fmt"
)

type Address struct {
	City string "xml:\"city\""
}
type User struct {
	Name    string  "xml:\"name\""
	Address Address "xml:\"address\""
}

func main() {
	b, _ := xml.Marshal(User{"Ann", Address{"Rome"}})
	fmt.Println(string(b))
}

सुव्यवस्थित XML

xml.MarshalIndent पढ़ने में आसानी के लिए आउटपुट को इंडेंटेशन के साथ फ़ॉर्मैट करता है।

package main

import (
	"encoding/xml"
	"fmt"
)

type User struct {
	Name string "xml:\"name\""
}

func main() {
	b, _ := xml.MarshalIndent(User{"Ann"}, "", "  ")
	fmt.Println(string(b))
}

दोहराए गए एलिमेंट

स्लाइस फ़ील्ड दोहराए गए XML एलिमेंट की शृंखला बन जाता है, जिसमें प्रत्येक आइटम के लिए एक एलिमेंट होता है।

package main

import (
	"encoding/xml"
	"fmt"
)

type List struct {
	Items []string "xml:\"item\""
}

func main() {
	b, _ := xml.Marshal(List{Items: []string{"a", "b"}})
	fmt.Println(string(b))
}

JSON बनाम XML

एपीआई एक-दूसरे के समान हैं: Marshal, Unmarshal, MarshalIndent और संरचना टैग। XML में विशेषताएँ और XMLName मूल अवधारणा जुड़ती है। नए एपीआई के लिए JSON को प्राथमिकता दें; पुराने सिस्टम के लिए XML का उपयोग करें।

हैडर घोषणा

xml.Header में मानक XML घोषणा वाली स्ट्रिंग होती है, जिसे पूर्ण दस्तावेज़ों के लिए आउटपुट की शुरुआत में जोड़ा जा सकता है।

package main

import (
	"encoding/xml"
	"fmt"
)

func main() {
	fmt.Print(xml.Header)
}

त्वरित जाँच

xml संरचना टैग में ,attr विकल्प क्या करता है?

पुनरावलोकन

encoding/xml:

  • xml.Marshal / Unmarshal json एपीआई के समान हैं
  • xml टैग एलिमेंट के नाम देते हैं; ,attr विशेषताएँ बनाता है
  • XMLName मूल एलिमेंट निर्धारित करता है; स्लाइस एलिमेंट दोहराते हैं
शुरुआत निःशुल्क

एआई शिक्षक के साथ Go सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “encoding/xml” पाठ निःशुल्क है?

हाँ — Go Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “encoding/xml” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“encoding/xml” में मैं क्या सीखूँगा?

XML के साथ काम करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Go Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Go Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Go Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“encoding/xml” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Go Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Go Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. encoding/json पुनरावलोकन
  2. encoding/xml
  3. encoding/csv
  4. gob और बाइनरी एन्कोडिंग
← Go Academy पर वापस जाएँ