这是我的 XML 响应<?xml version="1.0" encoding="utf-8"?><string xmlns="http://tempuri.org/">{"journalseq":"7002924","statuscode":"0002","statusdesc":"Date placed : Invalid Date","msgsockheader":["data","data"],"msgmwheader":["data","data"],"msgmbheader":["data","data"],"msgmbmessage":["data","data"]}</string>如上所示,它只有一个带有结构的标签。我已经使结构像这样解析它:type Data struct { xml.Name `xml:"string"` } type DoMBASEHoldAmountResult struct { XMLName xml.Name Data Data } var soapEnvelope DoMBASEHoldAmountResult // parse for hold response xml.Unmarshal(input, &soapEnvelope)但是soapEnvelope里面什么都没有。我在stackoverflow中找不到任何答案,我只能找到XML上有很多标签的时候。如何像这样解组 XML?此外,我怎样才能获取一些数据来做出回应?假设我只想将 journalSeq 和数组 msgsockheader 中的一个数据作为我的响应,我是否仍然需要解析所有内容,将其置于打击状态,然后从该结构中选择我需要的每个值?
1 回答
手掌心
TA贡献1942条经验 获得超3个赞
您需要确保根结构的 ( DoMBASEHoldAmountResult) xmlname 与 xml 的根元素名称匹配。并且要解组由具有 xml.Name 字段的结构匹配的元素的内容,您可以使用[]byteorstring字段和innerxmltag 选项。
type DoMBASEHoldAmountResult struct {
XMLName xml.Name `xml:"string"`
String string `xml:",innerxml"`
}
var soapEnvelope DoMBASEHoldAmountResult
// parse for hold response
if err := xml.Unmarshal(input, &soapEnvelope); err != nil {
panic(err)
}
fmt.Println(soapEnvelope.String)
https://play.golang.org/p/l4Coz9habxa
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消