go语言学习之解析XML
1
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <name>11</name> <author>11</author> <year>2014</year> <price>89</price> </book> <book> <name>131</name> <author>131</author> <year>20314</year> <price>839</price> </book> </bookstore>
package main 2 3 import ( 4 "encoding/xml" 5 "fmt" 6 "io/ioutil" 7 "os" 8 ) 9 10 type BookStore struct { 11 XMLName xml.Name `xml:"bookstore"` 12 Books []book `xml:"book"` 13 Description string `xml:",innerxml"` 14 } 15 16 type book struct { 17 XMLName xml.Name `xml:"book"` 18 Name string `xml:"name"` 19 // author string `xml:"author"` 20 // year string `xml:"year"` 21 // price string `xml:"price"` 22 } 23 24 func needPrintfErr(err error) bool { 25 if err != nil { 26 fmt.Printf("error: %v", err) 27 return true 28 } 29 return false; 30 } 31 32 func main() { 33 file, err := os.Open("/home/liq-n/eclipse-workspace/MyFirstGolang/src/main/bookInfo.xml") 34 if needPrintfErr(err) { 35 return 36 } 37 38 defer file.Close() 39 data, err := ioutil.ReadAll(file) 40 if needPrintfErr(err) { 41 return 42 } 43 44 bookInfo := BookStore{} 45 err = xml.Unmarshal(data, &bookInfo) 46 if needPrintfErr(err){ 47 return 48 } 49 fmt.Println(bookInfo) 50 }