问题描述
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
package service
import (
"encoding/xml"
"fmt"
"os"
"testing"
)
type serverIP struct{
IPV4 string
IPV6 string
}
type server struct{
ServerName string
ServerIPs []serverIP
}
type Servers struct {
Version string `xml:"version,attr"`
Svs []server `xml:"data>server"`
}
func TestBuildNet(t *testing.T) {
ip:=new(serverIP)
ip.IPV4="127.0.0.1"
ip.IPV6="wewewew"
Server:=new(server)
Server.ServerName="GLEKE"
Server.ServerIPs=append(Server.ServerIPs,serverIP{"127.0.0.1","WWWWW"})
Server.ServerIPs=append(Server.ServerIPs,serverIP{"127.0.0.2", "WWWWWSDFD"})
v := &Servers{Version : "1"}
output, err := xml.MarshalIndent(v," ", " ")
if err != nil{
fmt.Printf("error : %v\n", err)
}
os.Stdout.Write([]byte(xml.Header)) //输出预定义的xml头 <?xml version="1.0" encoding="UTF-8"?>
os.Stdout.Write(output)
}
你期待的结果是什么?实际看到的错误信息又是什么?
如何正确对嵌套的结构体赋值,生成的XML如何转换为string
new() 返回的是一个指针
然后你代码里 根本就没有放svs里放 []server
output 是一个 []byte 转换成string 只需要 string(output)