<?xml version="1.0" encoding="UTF-8"?>
<CMBSDKPGK>
<INFO>
<DATTYP>2</DATTYP>
<ERRMSG></ERRMSG>
<FUNNAM>ListAccount</FUNNAM>
<LGNNAM>銀企直連測試用戶76</LGNNAM>
<RETCOD>0</RETCOD>
</INFO>
<NTQACLSTZ>
<ACCNAM>企業網銀新20161411</ACCNAM>
<ACCNBR>755915713710105</ACCNBR>
<BBKNBR>75</BBKNBR>
<CCYNBR>10</CCYNBR>
<M_ACCNBR>深圳, 755915713710105, 人民幣</M_ACCNBR>
<RELNBR></RELNBR>
</NTQACLSTZ>
<NTQACLSTZ>
<ACCNAM>企業網銀新20161411</ACCNAM>
<ACCNBR>755915713710704</ACCNBR>
<BBKNBR>75</BBKNBR>
<CCYNBR>10</CCYNBR>
<M_ACCNBR>深圳, 755915713710304, 人民幣</M_ACCNBR>
<RELNBR></RELNBR>
</NTQACLSTZ>
</CMBSDKPGK>
像上面這樣的格式:
import (
"encoding/xml"
"fmt"
"io/ioutil"
"os"
)
我相信你自己看標籤顏色就能看懂!!
type Student struct {
XMLName xml.Name `xml:"NTQACLSTZ"`
ACCNAM string `xml:"ACCNAM"`
ACCNBR string `xml:"ACCNBR"`
BBKNBR string `xml:"BBKNBR"`
CCYNBR string `xml:"CCYNBR"`
M_ACCNBR string `xml:"M_ACCNBR"`
RELNBR string `xml:"RELNBR"`
}
type RecurlyStudents struct {
XMLName xml.Name `xml:"CMBSDKPGK"`//最外層的標籤
NTQACLSTZ []Student `xml:"NTQACLSTZ"`//裏面循環的標籤
}
加載xml文件,並讀取文件信息到data中:
func main() {
file, err := os.Open("student.xml") //這個是你的xml位置 eg:"E:/GoWorkSpace/fq.xml"
if err != nil {
fmt.Println("open xml file error")
return
}
defer file.Close()
data, err := ioutil.ReadAll(file)
if err != nil {
fmt.Println("read file stream error")
return
}
解析xml文件並輸出:
stus := RecurlyStudents{}
err = xml.Unmarshal(data, &stus)
if err != nil {
fmt.Println("format xml data failed")
return
}
for index, stu := range stus.NTQACLSTZ{
fmt.Printf(" %d ACCNAM:%s\n", index+1, stu.ACCNAM)
fmt.Printf(" %d ACCNBR:%s\n", index+1, stu.ACCNBR)
fmt.Printf(" %d BBKNBR:%s\n", index+1, stu.BBKNBR)
fmt.Printf(" %d CCYNBR:%s\n", index+1, stu.CCYNBR)
fmt.Printf(" %d M_ACCNBR:%s\n", index+1, stu.M_ACCNBR)
fmt.Printf(" %d RELNBR:%s\n", index+1, stu.RELNBR)
}
}