zoukankan      html  css  js  c++  java
  • go语言学习 ---struct 对象的序列化和反序列化(xml)

    实例1:

    //main
    package main
    
    import (
    	"encoding/xml"
    	"fmt"
    )
    
    type person struct {
    	Name string
    	Age  int
    }
    
    func main() {
    	p := person{Name: "sary", Age: 20}
    
    	if data, err := xml.MarshalIndent(p, "", " "); err != nil {
    		fmt.Println(err)
    		return
    	} else {
    		fmt.Println(string(data))
    	}
    
    }
    

      输出:

    D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]

    Success: process exited with code 0.

    D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]

    <person>

    <Name>sary</Name>

    <Age>20</Age>

    </person>

    Success: process exited with code 0.

    实例2

    //main
    package main
    
    
    import (
    	"encoding/xml"
    	"fmt"
    )
    
    
    type person struct {
    	Name string
    	Age  int
    }
    
    
    func main() {
    	p := person{Name: "sary", Age: 20}
    
    
    	var data []byte
    	var err error
    
    
    	if data, err = xml.MarshalIndent(p, "#", " "); err != nil {
    		fmt.Println(err)
    		return
    	}
    
    
    	fmt.Println(string(data))
    
    
    	p2 := new(person)
    	if err = xml.Unmarshal(data, p2); err != nil {
    		fmt.Println(err)
    		return
    	}
    	fmt.Println(p2)
    
    
    }

      输出:

    D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]

    Success: process exited with code 0.

    D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]

    #<person>

    # <Name>sary</Name>

    # <Age>20</Age>

    #</person>

    &{sary 20}

    Success: process exited with code 0.

    实例3:(设置标签属性)

    //main
    package main
    
    import (
    	"encoding/xml"
    	"fmt"
    )
    
    type person struct {
    	Name string `xml:"Name,attr"`
    	Age  int    `xml:"Age,attr"`
    }
    
    func main() {
    	p := person{Name: "sary", Age: 20}
    
    	var data []byte
    	var err error
    
    	if data, err = xml.MarshalIndent(p, "#", " "); err != nil {
    		fmt.Println(err)
    		return
    	}
    
    	fmt.Println(string(data))
    
    	p2 := new(person)
    	if err = xml.Unmarshal(data, p2); err != nil {
    		fmt.Println(err)
    		return
    	}
    	fmt.Println(p2)
    
    }
    

      输出:

    D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]

    Success: process exited with code 0.

    D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]

    #<person Name="sary" Age="20"></person>

    &{sary 20}

    Success: process exited with code 0.

  • 相关阅读:
    configuring tortoise git and vs code.
    introcuding less css with less.js, using webcompiler ext
    CSS3 auto revolution practitioner!
    我与 美国作家 21天精通C++ 作者 Rao的对话:
    AngularJs Test demo &front end MVVM implementation conjecture and argue.
    GreenPlum完全安装_GP5.11.3完整安装
    hdfs文件写入kafka集群
    Greenplum主备节点切换
    Greenplum客户端访问控制
    Greenplum+mybatis问题解析
  • 原文地址:https://www.cnblogs.com/saryli/p/11038085.html
Copyright © 2011-2022 走看看