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

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

go中的xml列表中的注釋

go中的xml列表中的注釋

Go
手掌心 2022-01-17 19:56:07
我想做類似的事情:    <members>        <!-- It's a first group -->        <member>Whatever</member>        ...        <member>whatever</member>        <!-- It's a second group -->        <member>Whatever</member>        ...        <member>whatever</member>    </members>有沒有辦法用golang做到這一點?
查看完整描述

1 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

你可以通過兩種方式做到這一點。首先,您可以將評論作為嵌入成員的更大結構的一部分,并使其在每次編組成員時編組評論:


type Members struct {

    XMLName xml.Name `xml:"members"`

    Members []CommentedMember

}


type CommentedMember struct {

    Member

    comment xml.Comment

}


func (cm CommentedMember) MarshalXML(e *xml.Encoder, start xml.StartElement) error {

    if cm.comment != nil {

        err := e.EncodeToken(cm.comment)

        if err != nil {

            return err

        }

    }

    return e.Encode(cm.Member)

}


type Member struct {

    XMLName xml.Name `xml:"member"`

}

第二種方法是創建一個單獨的Comment類型并使您的Members結構包含不同的類型:


type Members2 struct {

    XMLName xml.Name `xml:"members"`

    Members []interface{}

}


type Comment string


func (cm Comment) MarshalXML(e *xml.Encoder, start xml.StartElement) error {

    if cm != "" {

        return e.EncodeToken(xml.Comment(cm))

    }

    return nil

}


type Member struct {

    XMLName xml.Name `xml:"member"`

}

這兩個都在操場上:https: //play.golang.org/p/3n-xH1Zc-n。


查看完整回答
反對 回復 2022-01-17
  • 1 回答
  • 0 關注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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