您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Golang-解组额外的XML属性

Golang-解组额外的XML属性

您需要实现自己的XMLUnmarshaler

package main

import (
    "encoding/xml"
    "fmt"
)

type CustomTag struct {
    Name       string
    Attributes []xml.Attr
}

func (c *CustomTag) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
    c.Name = start.Name.Local
    c.Attributes = start.Attr
    return d.Skip()
}

func main() {
    v := &CustomTag{}

    data := []byte(`<tag ATTR1="VALUE1" ATTR2="VALUE2" />`)

    err := xml.Unmarshal(data, &v)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%+v\n", v)
}

输出

&{Name:tag Attributes:[{Name:{Space: Local:ATTR1} Value:VALUE1} {Name:{Space: Local:ATTR2} Value:VALUE2}]}

http://play.golang.org/p/9ZrpIT32o_

Go 2022/1/1 18:13:51 有499人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶