go_xml_learn

结构体转换为xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
type Person struct {
    XMLName xml.Name `xml:"person"`
    Name    string   `xml:"name"`
    Age     int      `xml:"age"`
    Email   string   `xml:"email"`
}
 
func main() {
 
    person := Person{
        Name:  "tom",
        Age:   20,
        Email: "tom@gmail.com",
    }
    //MarshalIndent函数中第二参数设置一级标题(<person>)空一格,第三个参数设置二级标题(<name>等)空二格
    b, _ := xml.MarshalIndent(person, " ", "  ")
    fmt.Printf("%v\n", string(b))
}

  返回结果:

 

 xml转换为go对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
type Person struct {
    XMLName xml.Name `xml:"person"`
    Name    string   `xml:"name"`
    Age     int      `xml:"age"`
    Email   string   `xml:"email"`
}
 
func main() {
 
    s := `
    <person>
    <name>tom</name>
    <age>20</age>
    <email>tom@gmail.com</email>
    </person>
    `
 
    b := []byte(s)
    var per Person
    //Unmarshal第一个参数传递一个字节数组,第二个参数要设置为取地址,而且为一个对象
    xml.Unmarshal(b, &per)
    fmt.Printf("per: %v\n", per)
}

 返回结果:

 

posted @   nLesxw  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示