go中的xml列表中的注释

我想做类似的事情:


    <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做到这一点?


手掌心
浏览 232回答 1
1回答

吃鸡游戏

你可以通过两种方式做到这一点。首先,您可以将评论作为嵌入成员的更大结构的一部分,并使其在每次编组成员时编组评论:type Members struct {&nbsp; &nbsp; XMLName xml.Name `xml:"members"`&nbsp; &nbsp; Members []CommentedMember}type CommentedMember struct {&nbsp; &nbsp; Member&nbsp; &nbsp; comment xml.Comment}func (cm CommentedMember) MarshalXML(e *xml.Encoder, start xml.StartElement) error {&nbsp; &nbsp; if cm.comment != nil {&nbsp; &nbsp; &nbsp; &nbsp; err := e.EncodeToken(cm.comment)&nbsp; &nbsp; &nbsp; &nbsp; if err != nil {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return err&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; return e.Encode(cm.Member)}type Member struct {&nbsp; &nbsp; XMLName xml.Name `xml:"member"`}第二种方法是创建一个单独的Comment类型并使您的Members结构包含不同的类型:type Members2 struct {&nbsp; &nbsp; XMLName xml.Name `xml:"members"`&nbsp; &nbsp; Members []interface{}}type Comment stringfunc (cm Comment) MarshalXML(e *xml.Encoder, start xml.StartElement) error {&nbsp; &nbsp; if cm != "" {&nbsp; &nbsp; &nbsp; &nbsp; return e.EncodeToken(xml.Comment(cm))&nbsp; &nbsp; }&nbsp; &nbsp; return nil}type Member struct {&nbsp; &nbsp; XMLName xml.Name `xml:"member"`}这两个都在操场上:https: //play.golang.org/p/3n-xH1Zc-n。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go