您的位置:首页 > 编程语言 > Go语言

golang解析xml示例

2017-08-09 17:20 417 查看
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<document>
<request>
<head>
<version>V0.1</version>
<reqTime>2017-08-9 17:30:30</reqTime>
<reqTimeZone>UTC8</reqTimeZone>
<reqMsg>123456554687864654</reqMsg>
</head>
<body>
<name>张三</name>
<idType>1</idType>
<idNo>234123453421342312</idNo>
<sex>M</sex>
<birthDay>1988-10-10</birthDay>
<mobile>13838637689</mobile>
<tel></tel>
<data>1011</data>
<returnUrl>http://127.0.0.1:8080</returnUrl>
<touchSuccess>Y</touchSuccess>
</body>
</request>
<signature>xxxxxxxxx</signature>
</document>

package main

import (
"fmt"
"encoding/xml"
"io/ioutil"
"os"
)

type Document struct {
Request []Request `xml:"request"`
Signature string `xim:"signature"`
}

type Request struct {
Head []Head `xml:"head"`
Body []Body `xml:"body"`
}

type Head struct {
XMLName xml.Name `xml:"head"`
Version string `xml:"version"`
ReqTime string `xml:"reqTime"`
ReqTimeZone string `xml:"reqTimeZone"`
ReqMsg string `xml:"reqMsg"`
}

type Body struct {
XMLName xml.Name `xml:"body"`
Name string `xml:"name"`
IdType string `xml:"idType"`
IdNo string `xml:"idNo"`
Sex string `xml:"sex"`
BirthDay string `xml:"birthDay"`
Mobile string `xml:"mobile"`
Tel string `xml:"Tel"`
Data string `xml:"data"`
ReturnUrl string `xml:"returnUrl"`
TouchSuccess string `xml:"touchSuccess"`
}

func main() {
file, err := os.Open("default.xml")
if err != nil {
fmt.Println("error1: %v", err)
return
}
defer file.Close()

data, err := ioutil.ReadAll(file)
if err != nil {
fmt.Println("error2: %v", err)
return
}

var v Document
err = xml.Unmarshal(data, &v)
if err != nil {
fmt.Println("error3: %v", err)
return
}

for _, request := range v.Request {
for _, body := range request.Body {
fmt.Println(body)
fmt.Println(body.Name)
fmt.Println(body.IdType)
fmt.Println(body.IdNo)
fmt.Println(body.Sex)
fmt.Println(body.BirthDay)
fmt.Println(body.Mobile)
fmt.Println(body.Tel)
fmt.Println(body.Data)
fmt.Println(body.ReturnUrl)
fmt.Println(body.TouchSuccess)
}
}
}
刚才用到了,刚刚学有什么问题请指出,谢谢,相互学习!!! 仅供参考
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: