Thanks!.
XMLName struct{} `xml:"urn:MNResultsResults MNResultsResults"`
Cpcs []float64 `xml:"urn:MNResultsResults
ssResultSet>ssResult>cpc"`
Is there any reason to declare the namespace 2 times? At first we declare
XMLName (which doesn't seem to be used) and then we use
urn:MNResultsResults again at CPC []
El lunes, 24 de julio de 2017, 5:04:58 (UTC-3), Konstantin Khomoutov
escribió:
>
> On Sun, Jul 23, 2017 at 01:51:41PM -0700, [email protected]
> <javascript:> wrote:
>
> Hi!
>
> > So I'm trying to unmarshal an XML with namespaces in go but i just can't
> > find the right parser to do so.
> [...]
>
> This (elided for brewity)
>
> ----------------8<----------------
> package main
>
> import (
> "fmt"
> "encoding/xml"
> )
>
> type Root struct {
> XMLName struct{} `xml:"urn:MNResultsResults MNResultsResults"`
> Cpcs []float64 `xml:"urn:MNResultsResults
> ssResultSet>ssResult>cpc"`
> }
>
> const s = `<?xml version="1.0" encoding="utf-8"?>
> <ls:MNResultsResults xmlns:ls="urn:MNResultsResults">
> <ls:ssResultSet ls:firstResult="1" ls:numResults="2" ls:totalHits="2">
> <ls:ssResult ls:id="1">
> <ls:cpc>42.0</ls:cpc>
> </ls:ssResult>
> <ls:ssResult ls:id="2">
> <ls:cpc>12.333</ls:cpc>
> </ls:ssResult>
> </ls:ssResultSet>
> </ls:MNResultsResults>`
>
> func main() {
> r := Root{}
> err := xml.Unmarshal([]byte(s), &r)
> if err != nil {
> panic(err)
> }
> fmt.Printf("%+v", r)
> }
> ----------------8<----------------
>
> works by printing
>
> {XMLName:{} Cpcs:[42 12.333]}
>
> (Playground link: https://play.golang.org/p/RehqytlFQ9).
>
> The chief idea is that the namespace must be separated from the element
> or attribute name it qualifies with a space character.
>
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.