目录


目录结构

 

xzm.xml文件

<!--自定义标签-->
<mysql>
    <configs>
        <config>
            <url>www.baidu.com</url>
            <port>3306</port>
            <username>root</username>
            <password>1234</password>
        </config>
        
        <config>
            <url>www.xues.info</url>
            <port>3306</port>
            <username>root</username>
            <password>1234</password>
        </config>
    </configs>
</mysql>

readMysqlXml.go代码

package main

import (
    "encoding/xml"
    "fmt"
    "io/ioutil"
    "os"
)

type Mysql struct {
    Configs Configs `xml:"configs"`
}

type Configs struct {
    Config []Config `xml:"config"`
}

type Config struct {
    Url      string `xml:"url"`
    Port     string `xml:"port"`
    Username string `xml:"username"`
    Password string `xml:"password"`
}

func main() {
    //将文件转成字节数组
    charArr, err := ioutil.ReadFile("./readXml/xzm.xml")
    if err != nil {
        fmt.Fprintln(os.Stderr, err.Error())
        os.Exit(0)
    }

    var mysql Mysql
    //反序列化
    xml.Unmarshal(charArr, &mysql)
    fmt.Println(mysql)

}

效果展示

 

作者留言

结构体与标签保保持一致,configs标签可以添加多个config。本文仅为了学习和研究Go语言,内容若有不适当或不正确之处,本人虚心接受批评和建议。