猿问

在 Go 中解组 XML

我有以下xml“文件”:


<pinnacle_line_feed>

    <PinnacleFeedTime>1439954818555</PinnacleFeedTime>

    <lastContest>34317132</lastContest>

    <lastGame>218491030</lastGame>

    <events>

        <event>

            <event_datetimeGMT>2015-08-21 09:50</event_datetimeGMT>

            <gamenumber>483406220</gamenumber>

            <sporttype>Aussie Rules</sporttype>

            <league>AFL</league>

            <IsLive>No</IsLive>

            <participants>

                <participant>

                    <participant_name>Hawthorn Hawks</participant_name>

                    <contestantnum>1251</contestantnum>

                    <rotnum>1251</rotnum>

                    <visiting_home_draw>Visiting</visiting_home_draw>

                    </participant>

                <participant>

                    <participant_name>Port Adelaide Power</participant_name>

                    <contestantnum>1252</contestantnum>

                    <rotnum>1252</rotnum>

                    <visiting_home_draw>Home</visiting_home_draw>

                </participant>

            </participants>

            <periods></periods>

        </event>

    </events>

</pinnacle_line_feed>

我试图用 Golang 解析这个,到目前为止已经写了以下内容:


package main

import (

    "fmt"

    "encoding/xml"

)


type Participant struct {

    XMLName            xml.Name `xml:"participant"`

    participant_name   string `xml:"participant_name"`

    contestantnum      int `xml:"contestantnum"`

    rotnum             int `xml:"rotnum"`

    visiting_home_draw string `xml:"visiting_home_draw"`

}



坦率地说,我对 Golang 中的深度嵌套 xml 解析研究了很多,但我没有找到太多可以帮助解决此代码的 Unmarshal 部分的问题。理想情况下,代码将返回类似于 Python 字典的内容,例如,

{event_datetimeGMT: 2015-08-21, gamenumber: 483406220, ... ,visiting_home_draw: "Home"}



MM们
浏览 175回答 2
2回答

BIG阳

您需要将结构中的所有字段大写。xml 解码器需要导出字段才能正常工作。到这里去游乐场。
随时随地看视频慕课网APP

相关分类

Go
我要回答