From b1fe04a28269ace14be4fa8cceb841a16cf9d1ad Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Thu, 2 May 2024 13:12:12 +0530 Subject: [PATCH] Add xml --- main.go | 6 ++++-- xml/xml.go | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 xml/xml.go diff --git a/main.go b/main.go index 7b157ed..fccc610 100644 --- a/main.go +++ b/main.go @@ -26,7 +26,8 @@ package main // import "git.sangeeth.dev/gobyexample/formatting" // import "git.sangeeth.dev/gobyexample/templates" // import "git.sangeeth.dev/gobyexample/regex" -import "git.sangeeth.dev/gobyexample/json" +// import "git.sangeeth.dev/gobyexample/json" +import "git.sangeeth.dev/gobyexample/xml" func main() { // runes.Runes() @@ -55,5 +56,6 @@ func main() { // formatting.Formatting() // templates.Templates() // regex.Regex() - json.Json() + // json.Json() + xml.Xml() } diff --git a/xml/xml.go b/xml/xml.go new file mode 100644 index 0000000..5a72f32 --- /dev/null +++ b/xml/xml.go @@ -0,0 +1,26 @@ +package xml + +import ( + "encoding/xml" + "fmt" +) + +type Player struct { + XMLName xml.Name `xml:"player"` + Id int `xml:"id,attr"` + Name string `xml:"name"` + Weapons []string `xml:"weapons>weapon"` +} + +func (p *Player) String() string { + return fmt.Sprintf("Player id=%v name=%s weapons=%v", p.Id, p.Name, p.Weapons) +} + +func Xml() { + geralt := &Player{Id: 1, Name: "Geralt", Weapons: []string{"Silver Sword", "Steel Sword"}} + + out, _ := xml.MarshalIndent(geralt, "", " ") + fmt.Println(string(out)) + + fmt.Println(xml.Header + string(out)) +}