Go XML Unmarshaling不读取属性

时间:2017-12-10 07:09:12

标签: xml go

Go lang的新手。从XML中,代码解组除属性之外的所有值。有人可以告诉我我做错了什么:

package main

import (
    "encoding/xml"
    "fmt"
)

func main() {
    v, _ := GetData()
    fmt.Print(v)
}


type Query struct {
    InstituationList []Instituation `xml:"institution"`
}

type Instituation struct {
    XMLName           xml.Name `xml:"institution"`
    OFXHomeID         string   `xml:"id, attr"`
    Name              string   `xml:"name"`
    FId               string   `xml:"fid"`
    FOrg              string   `xml:"org"`
    URL               string   `xml:"url"`
    OFXHomeIDD         string   `xml:"idd"`
}


func GetData() (*Query, error) {
    fakeXML := `
<?xml version="1.0" encoding="utf-8"?>
<Data>
<institution id="A421">
<idd>423</idd>
<name>ING DIRECT (Canada)</name>
<fid>061400152</fid>
<org>INGDirectCanada</org>
<url>https://ofx.ingdirect.ca</url>
</institution>
</Data>
`

    content := []byte(fakeXML)

    e := new(Query)
    xml.Unmarshal(content, e)

    return e, nil
}

1 个答案:

答案 0 :(得分:1)

解决。 显然GO并不喜欢attr前面的空间

应该是 OFXHomeID字符串xml:"id,attr"

而不是

OFXHomeID字符串xml:"id, attr"