Go (Golang) में XML के साथ कार्य: encoding/xml पैकेज के लिए विस्तृत मार्गदर्शिका
Go (Golang) में आधुनिक विकास में, XML डेटा को संसाधित करने का कार्य काफी सामान्य है - पुराने सिस्टम के साथ एकीकरण से लेकर SOAP सेवाओं में डेटा विनिमय तक। Go की मानक लाइब्रेरी एक शक्तिशाली और लचीला पैकेज encoding/xml प्रदान करती है, जो XML दस्तावेज़ों को प्रभावी ढंग से पार्स, बनाने और रूपांतरित करने की अनुमति देता है। इस लेख में, हम Go में XML के साथ कार्य करने की सभी प्रमुख क्षमताओं पर विस्तार से चर्चा करेंगे।
encoding/xml पैकेज की मुख्य विशेषताएँ
encoding/xml पैकेज Go संरचनाओं को XML में क्रमबद्ध (मार्शलिंग) करने और XML को वापस संरचनाओं में अक्रमबद्ध (अनमार्शलिंग) करने के लिए एक सरल इंटरफ़ेस लागू करता है। यह समर्थन करता है:
- Go संरचनाओं को XML दस्तावेज़ों में और वापस रूपांतरित करना
- विशेषताओं, नेस्टेड तत्वों और नेमस्पेस के साथ कार्य
xml.Decoderके माध्यम से बड़ी XML फ़ाइलों का स्ट्रीमिंग पार्सिंग- स्ट्रक्चर टैग का उपयोग करके अनुकूलन योग्य क्रमबद्धता नियम
पैकेज स्थापना और आयात
encoding/xml पैकेज Go की मानक लाइब्रेरी का हिस्सा है, इसलिए अतिरिक्त स्थापना की आवश्यकता नहीं है। उपयोग के लिए, बस इसे आयात करें:
import ( "encoding/xml" "fmt" "os")मार्शलिंग: Go संरचना → XML
Go संरचना को XML में रूपांतरित करने के लिए xml.Marshal() या स्वरूपित आउटपुट के लिए xml.MarshalIndent() फ़ंक्शन का उपयोग किया जाता है। एक उदाहरण देखें:
type Person struct { XMLName xml.Name `xml:"person"` ID int `xml:"id,attr"` FirstName string `xml:"name>first"` LastName string `xml:"name>last"` Age int `xml:"age"`}
func main() { p := Person{ ID: 123, FirstName: "इवान", LastName: "पेत्रोव", Age: 30, }
output, err := xml.MarshalIndent(p, "", " ") if err != nil { fmt.Printf("मार्शलिंग त्रुटि: %v", err) return }
fmt.Println(string(output))}निष्पादन परिणाम:
<person id="123"> <name> <first>इवान</first> <last>पेत्रोव</last> </name> <age>30</age></person>अनमार्शलिंग: XML → Go संरचना
विपरीत प्रक्रिया - XML डेटा को Go संरचना में रूपांतरित करना - xml.Unmarshal() का उपयोग करके किया जाता है:
func unmarshalExample() { xmlData := `<person id="456"> <name> <first>मारिया</first> <last>सिदोरोवा</last> </name> <age>25</age></person>`
var p Person err := xml.Unmarshal([]byte(xmlData), &p) if err != nil { fmt.Printf("अनमार्शलिंग त्रुटि: %v", err) return }
fmt.Printf("ID: %d, नाम: %s %s, आयु: %d", p.ID, p.FirstName, p.LastName, p.Age) // आउटपुट: ID: 456, नाम: मारिया सिदोरोवा, आयु: 25}विशेषताओं और नेस्टेड तत्वों के साथ कार्य
encoding/xml पैकेज मैपिंग को नियंत्रित करने के लिए स्ट्रक्चर टैग का उपयोग करता है। मुख्य टैग निर्देश:
xml:"name"— तत्व का नामxml:"name,attr"— तत्व की विशेषताxml:"parent>child"— नेस्टेड तत्वxml:",chardata"— टेक्स्ट सामग्रीxml:",innerxml"— तत्व के अंदर कच्चा XMLxml:",comment"— XML टिप्पणीxml:"-"— फ़ील्ड को अनदेखा करें
बड़ी XML फ़ाइलों का स्ट्रीमिंग पार्सिंग
बड़े XML दस्तावेज़ों (जैसे, गीगाबाइट आकार की फ़ाइलें) को संसाधित करने के लिए स्ट्रीमिंग पार्सर xml.Decoder का उपयोग किया जाता है। यह मेमोरी को लोड नहीं करने देता है
पुस्तकालय में भी
CreateML Swift: पूर्ण गाइड उदाहरणों के साथ
ts-node-dev TypeScript: पूरी गाइड, उदाहरण और सेटअप
Swift में दिनांकों के साथ कार्य: Foundation, SwiftDate, DateTools (iOS/macOS)
Kotlin कार्य शेड्यूलर: kotlinx.coroutines और पृष्ठभूमि कार्यों के लिए लाइब्रेरीज़
Kotlin में Kafka के साथ कार्य: लाइब्रेरीज़ और उदाहरण