go - Reading XML with golang -


i'm trying read som xml golang. i'm basing on example works. https://gist.github.com/kwmt/6135123#file-parsetvdb-go

this files:

castle0.xml

<?xml version="1.0" encoding="utf-8" ?> <channel> <title>test</title> <description>this test</description> </channel> 

test.go

package main  import (     "encoding/xml"     "fmt"     "io/ioutil"     "os" )  type query struct {     chan channel `xml:"channel"` }  type channel struct {     title    string `xml:"title"`     desc string `xml:"description"` }   func (s channel) string() string {     return fmt.sprintf("%s - %d", s.title, s.desc) }  func main() {     xmlfile, err := os.open("castle0.xml")     if err != nil {         fmt.println("error opening file:", err)         return     }     defer xmlfile.close()      b, _ := ioutil.readall(xmlfile)      var q query     xml.unmarshal(b, &q)      fmt.println(q.chan)  } 

output: - %!d(string=)

any 1 know i'm doing wrong? (i'm doing learn go, go easy on me :p)

other packages, including encoding/json , encoding/xml can see exported data. firstly title , desc should title , desc correspondingly.

secondly, you're using %d (integer) format in sprintf when printing string. that's why you're getting %!d(string=), means "it's not integer, it's string!".

thirdly, there no query in xml, unmarshal directly q.chan.

this working example. http://play.golang.org/p/l0iml2id-j


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -