package main
import (
"bufio"
"encoding/xml"
"fmt"
"io"
"net/http"
"os"
"path"
)
type Note struct {
Count string `xml:"count"`
Members []member `xml:"member"`
UpdatedAt string `xml:"updated_at"`
}
type member struct {
Id string `xml:"id"`
Name string `xml:"name"`
Pic string `xml:"pic"`
Mobile string `xml:"mobile"`
Sex string `xml:"sex"`
Level string `xml:"level"`
Employee string `xml:"employee"`
EmployeePic string `xml:"employee_pic"`
UpdatedAt string `xml:"updated_at"`
}
func main() {
downloadFile()
file,err:=os.Open("face_pic_1575.xml")
if err != nil{
fmt.Printf("error:%v",err)
return
}
defer file.Close()
data,err := io.ReadAll(file)
if err != nil{
fmt.Printf("error:%v",err)
return
}
v:=Note{}
err =xml.Unmarshal(data,&v)
if err != nil {
fmt.Printf("error:%v",err)
return
}
for _,v := range v.Members{
fmt.Printf("会员: %+v \n",v)
}
}
func downloadFile() {
// 当前执行目录
//dirPath, err := os.Executable()
//if err != nil {
// fmt.Printf("error:%v",err)
// return
//}
//fmt.Printf("error:%v",dirPath)
filePath := "/XXXXX/"
fileUrl:="http://XXXXX/face_pic_1575.xml"
fileName := path.Base(fileUrl)
res,err := http.Get(fileUrl)
if err != nil {
fmt.Printf("error:%v",err)
return
}
defer res.Body.Close()
reader := bufio.NewReaderSize(res.Body,32 * 10240)
file,err:=os.Create(filePath+fileName)
if err !=nil {
fmt.Printf("error:%v",err)
return
}
writer := bufio.NewWriter(file)
written,_:=io.Copy(writer,reader)
fmt.Printf("total length:%d",written)
}