Complex XML Response
DanielZambranoC opened this issue · 3 comments
DanielZambranoC commented
Hi, I've been trying to parse an answer and I still can't get it right.
I have tried in different ways, which I believe closer has been the structure provided by this tool (https://www.onlinetool.io/xmltogo/)
I need to be able to extract indexDateString and value
Can you advise me on where I am failing?
Error obtained: xml.Unmarshal error: EOF
Try 1
type GetSeriesResponse struct {
XMLName xml.Name `xml:"GetSeriesResponse"`
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
GetSeriesResult struct {
Text string `xml:",chardata"`
Series struct {
Text string `xml:",chardata"`
FameSeries struct {
Text string `xml:",chardata"`
Obs []struct {
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
IndexDateString string `xml:"indexDateString"`
StatusCode string `xml:"statusCode"`
Value string `xml:"value"`
} `xml:"obs"`
} `xml:"fameSeries"`
} `xml:"Series"`
} `xml:"GetSeriesResult"`
}
Try 2
type GetSeriesResponse struct {
GetSeriesResult string `xml:"GetSeriesResult"`
}
type GetSeriesResult struct {
XMLName xml.Name `xml:"GetSeriesResult"`
Text string `xml:",chardata"`
Series struct {
Text string `xml:",chardata"`
FameSeries struct {
Text string `xml:",chardata"`
Obs []struct {
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
IndexDateString string `xml:"indexDateString"`
StatusCode string `xml:"statusCode"`
Value string `xml:"value"`
} `xml:"obs"`
} `xml:"fameSeries"`
} `xml:"Series"`
}
Response
<GetSeriesResponse xmlns="http://bancocentral.org/">
<GetSeriesResult>
<Series>
<fameSeries>
<obs xmlns="">
<indexDateString>07-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>3.5877</value>
</obs>
<obs xmlns="">
<indexDateString>08-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>NaN</value>
</obs>
<obs xmlns="">
<indexDateString>09-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>3.6025</value>
</obs>
<obs xmlns="">
<indexDateString>10-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>3.6045</value>
</obs>
<obs xmlns="">
<indexDateString>11-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>3.5969</value>
</obs>
<obs xmlns="">
<indexDateString>12-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>NaN</value>
</obs>
<obs xmlns="">
<indexDateString>13-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>NaN</value>
</obs>
<obs xmlns="">
<indexDateString>14-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>3.5968</value>
</obs>
<obs xmlns="">
<indexDateString>15-12-2020</indexDateString>
<statusCode>OK</statusCode>
<value>3.5868</value>
</obs>
</fameSeries>
</Series>
</GetSeriesResult>
</GetSeriesResponse>