目录
1 被解析文件
2 解析代码
3 运行结果
1 被解析文件
Local_Web
127.0.0.1
Local_DB
127.0.0.2
2 解析代码
package main
import (
"encoding/xml"
"fmt"
"io/ioutil"
"os"
)
type RecurlyServers struct {
XMLName xml.Name `xml:"servers"`
Version string `xml:"version,attr"`
Svs []server `xml:"server"`
Description string `xml:",innerxml"`
}
type server struct {
XMLName xml.Name `xml:"server"`
ServerName string `xml:"serverName"`
ServerIP string `xml:"serverIP"`
}
func main() {
file, err := os.Open("D:\go_workspace\adapter11\server.xml")
if err != nil {
fmt.Println("error:%v", err)
return
}
defer file.Close()
data, err := ioutil.ReadAll(file)
if err != nil {
fmt.Println("error:%v", err)
return
}
v := RecurlyServers{}
err = xml.Unmarshal(data, &v)
if err != nil {
fmt.Println("error:%v", err)
return
}
fmt.Println(v)
}
ps:
- struct中的 `xml:"servers"` ,外层不是单引号
- struct定义与xml节点一致
3 运行结果
{{ servers} 1 [{{ server} Local_Web 127.0.0.1} {{ server} Local_DB 127.0.0.2}]
Local_Web
127.0.0.1
Local_DB
127.0.0.2
}
golang版本 1.17.6
package main
import (
"encoding/xml"
"fmt"
"io/ioutil"
"os"
)
type RecurlyServers struct {
XMLName xml.Name `xml:"servers"`
Version string `xml:"version,attr"`
Svs []server `xml:"server"`
Description string `xml:",innerxml"`
}
type server struct {
XMLName xml.Name `xml:"server"`
ServerName string `xml:"serverName"`
ServerIP string `xml:"serverIP"`
}
func main() {
file, err := os.Open("D:\go_workspace\adapter11\server.xml")
if err != nil {
fmt.Println("error:%v", err)
return
}
defer file.Close()
data, err := ioutil.ReadAll(file)
if err != nil {
fmt.Println("error:%v", err)
return
}
v := RecurlyServers{}
err = xml.Unmarshal(data, &v)
if err != nil {
fmt.Println("error:%v", err)
return
}
fmt.Println(v)
}
ps:
- struct中的 `xml:"servers"` ,外层不是单引号
- struct定义与xml节点一致
3 运行结果
{{ servers} 1 [{{ server} Local_Web 127.0.0.1} {{ server} Local_DB 127.0.0.2}]
Local_Web
127.0.0.1
Local_DB
127.0.0.2
}
golang版本 1.17.6
golang版本 1.17.6



