duanqiangwu9332 2018-09-17 10:40
浏览 49
已采纳

如何封送XML

I have two structs in order to marshal into XML

//Accounts ...
type Accounts struct {
    XMLName     xml.Name `xml:"account"`
    AccNumber   string   `xml:"iban"`

}

//Accounts ...
type AccountsList struct {
    XMLName    xml.Name   `xml:"response"`
    ResultCode string     `xml:"resultCode"`
    Accounts   []Accounts `xml:"result"`
}

I'm getting next xml structure:

<response>
    <resultCode>...</resultCode>
    <account>
        <iban>...</iban>
    </account>
    <account>
        <iban>...</iban>
    </account>
</response>

But I need also <result> tag, so I need next xml:

<response>
    <resultCode>...</resultCode>
    <result>
        <account>
            <iban>...</iban>
        </account>
        <account>
            <iban>...</iban>
        </account>
    <result>  
</response>

Why Golang XML marshaller is ignoring this thing xml:"result" in AccountsList structure? Is it possible to get result I want without using third structure?

  • 写回答

2条回答 默认 最新

  • doubi4340 2018-09-17 11:04
    关注

    You can change the field tag name from result to result>account:

    type AccountsList struct {
        XMLName    xml.Name   `xml:"response"`
        ResultCode string     `xml:"resultCode"`
        Accounts   []Accounts `xml:"result>account"`
    }
    

    This will wrap your accounts slice with result tag.

    See: https://play.golang.org/p/E2oJeO81wKh

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号