如 XML:
<result> <item value="1" flag="false" /> <item value="2" flag="true" /> <item value="3" /> </result>
解析后获得的 item 3的 flag 默认值为false, 如果要修改为true, 需要添加如下
type ResultItem struct { Value string `xml:"value,attr"` Flag bool `xml:"flag,attr"` } func (ri *ResultItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { type resultItem ResultItem // new type to prevent recursion item := resultItem{ Flag: true, } if err := d.DecodeElement(&item, &start); err != nil { return err } *ri = (ResultItem)(item) return nil }
有疑问加站长微信联系(非本文作者)