Golang encoding/xml.Encoder.EncodeElement() function example
package encoding/xml
EncodeElement writes the XML encoding of v to the stream, using start as the outermost tag in the encoding.
See the documentation for Marshal for details about the conversion of Go values to XML.
EncodeElement calls Flush before returning.
Golang encoding/xml.Encoder.EncodeElement() function usage example
package main
import (
"encoding/xml"
"fmt"
"os"
"reflect"
)
type Address struct {
City, State string
}
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"`
Height float32 `xml:"height,omitempty"`
Married bool
Address
Comment string `xml:",comment"`
}
func main() {
v := &Person{Id: 13, FirstName: "John", LastName: "Doe", Age: 42}
v.Comment = " Need more details. "
v.Address = Address{"Hanga Roa", "Easter Island"}
encoder := xml.NewEncoder(os.Stdout)
start := xml.StartElement{
Name: xml.Name{
Space: "",
Local: reflect.Indirect(reflect.ValueOf(v)).Type().Name(),
},
Attr: []xml.Attr{{xml.Name{"", "xmlns"}, "https://socketloop.com/xmldoc/2014-09-01/"}},
}
if err := encoder.EncodeElement(v, start); err != nil {
fmt.Println(err)
}
}
Output :
<Person xmlns="https://socketloop.com/xmldoc/2014-09-01/" id="13"><name><first>John</first>
<last>Doe</last></name><age>42</age><Married>false</Married>
<City>Hanga Roa</City><State>Easter Island</State><!-- Need more details. --></Person>
Reference :
Advertisement
Something interesting
Tutorials
+36.7k Golang : Display float in 2 decimal points and rounding up or down
+7.7k Golang : Generate human readable password
+9.1k Golang : Serving HTTP and Websocket from different ports in a program example
+5.2k Golang : Experimental Jawi programming language
+24.5k Golang : GORM read from database example
+6.1k Golang : Dealing with backquote
+5.5k Golang : If else example and common mistake
+14.1k Javascript : Prompt confirmation before exit
+6.3k Apt-get to install and uninstall Golang
+15k Golang : package is not in GOROOT during compilation