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.7k Unix/Linux : How to pipe/save output of a command to file?
+11.6k Golang : Simple file scaning and remove virus example
+9.6k Golang : Copy map(hash table) example
+8.1k Golang : Append and add item in slice
+19.3k Golang : Calculate entire request body length during run time
+11.1k Golang : Read until certain character to break for loop
+13.3k Golang : Date and Time formatting
+7.4k Golang : Hue, Saturation and Value(HSV) with OpenCV example
+4.9k Python : Find out the variable type and determine the type with simple test
+9.1k Golang : Gonum standard normal random numbers example
+27.2k Golang : Find files by name - cross platform example
+5.3k Javascript : Change page title to get viewer attention