亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在自定義 UnmarshalXML 函數中正確使用 XML 注釋、字段和結構

在自定義 UnmarshalXML 函數中正確使用 XML 注釋、字段和結構

Go
aluckdog 2021-10-18 16:26:11
考慮以下結構:type MyStruct struct {    Name string    Meta map[string]interface{}}其中具有以下 UnmarshalXML 函數:func (m *MyStruct) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {    var v struct {        XMLName xml.Name //`xml:"myStruct"`        Name    string   `xml:"name"`        Meta    struct {            Inner []byte `xml:",innerxml"`        } `xml:"meta"`    }    err := d.DecodeElement(&v, &start)    if err != nil {        return err    }    m.Name = v.Name    myMap := make(map[string]interface{})    // ... do the mxj magic here ... -    temp := v.Meta.Inner    prefix := "<meta>"    postfix := "</meta>"    str := prefix + string(temp) + postfix    //fmt.Println(str)    myMxjMap, err := mxj.NewMapXml([]byte(str))    myMap = myMxjMap    // fill myMap    //m.Meta = myMap    m.Meta = myMap["meta"].(map[string]interface{})    return nil}我對這段代碼的問題是這些行:prefix := "<meta>"postfix := "</meta>"str := prefix + string(temp) + postfixmyMxjMap, err := mxj.NewMapXml([]byte(str))myMap = myMxjMap//m.Meta = myMapm.Meta = myMap["meta"].(map[string]interface{})我的問題是我如何正確使用 xml 注釋(、innerxml 等)、字段和結構,所以我不必在<meta></meta>之后手動預先/附加標簽來將整個 Meta 字段作為單個映射。完整的代碼示例在這里:http : //play.golang.org/p/Q4_tryubO6
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號