• 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 }
  • 相关阅读:
    初入水:vector
    Sort Colors
    Palindrome Partitioning II
    Search for a Range
    Container With Most Water
    Palindrome Partitioning
    Longest Consecutive Sequence
    简单写了一个堆排序
    Best Time to Buy and Sell Stock III
    4-7
  • 原文地址:https://www.cnblogs.com/xzlq/p/14341469.html
Copyright © 2020-2023  润新知