给定以下结构:type book struct { XMLName xml.Name `xml:"DailyAct"` Symbol string `xml:"TradeInstrId,attr"` EntityId string `xml:"EntityId,attr"` AssetClass string `xml:"AssetClass,attr"` Open int `xml:"Open"` High int `xml:"High"` Low int `xml:"Low"` Close int `xml:"Close"` // Type string `` //I'll leave this for another question}我当前的 XML: <DailyAct EntityId="foo" AssetClass="bar" TradeInstrId="Symbol" > <Open>2</Open> <High>3</High> <Low>1</Low> <Close>5</Close> </DailyAct>但是,我需要重新调整结构的某些字段(或以另一种方式生成 xml)来实现:<DailyAct EntityId="foo" AssetClass="bar" TradeInstrId="Symbol"> <Open Price="2" Type="IND"/> <High Price="6" Type="IND"/> <Low Price="1" Type="IND"/> <Close Price="4" Type="IND"/></DailyAct>但是我得到:&errors.errorString{s:"xml: DailyAct>Open chain not valid with Price,attr flag"} (actual)当我尝试像这样嵌套字段时:type book struct { //... Open int `xml:"DailyAct>Open,Price,attr>"` //...}编辑: 我发现了这个讨论,同时在谷歌上搜索,所以我想要的东西目前可能不可行
1 回答
SMILET
TA贡献1796条经验 获得超4个赞
你是对的,目前这是不可能的。但是您可以使用子结构,例如
type PriceType struct {
Price int `xml:"Price,attr"`
Type string `xml:"Type,attr"`
}
type Book struct {
XMLName xml.Name `xml:"DailyAct"`
Symbol string `xml:"TradeInstrId,attr"`
EntityId string `xml:"EntityId,attr"`
AssetClass string `xml:"AssetClass,attr"`
Open PriceType `xml:"Open"`
High PriceType `xml:"High"`
Low PriceType `xml:"Low"`
Close PriceType `xml:"Close"`
}
这里的例子http://play.golang.org/p/Ekd6Xf3miS
- 1 回答
- 0 关注
- 194 浏览
添加回答
举报
0/150
提交
取消