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
+4.6k Linux : sudo yum updates not working
+18.5k Golang : Aligning strings to right, left and center with fill example
+22.2k Golang : Print leading(padding) zero or spaces in fmt.Printf?
+5.6k Swift : Get substring with rangeOfString() function example
+33k Golang : How to check if a date is within certain range?
+37.5k Upload multiple files with Go
+7.6k Golang : Convert(cast) io.Reader type to string
+9k Golang : Inject/embed Javascript before sending out to browser example
+6.9k Golang : How to solve "too many .rsrc sections" error?
+15.2k Golang : How to check if IP address is in range
+7.1k Golang : Squaring elements in array