将当前XML元素中的属性解组为匿名结构:
package main
import (
"encoding/xml"
"fmt"
)
type Attrs struct {
Attr1 int `xml:"attr1,attr"`
Attr2 int `xml:"attr2,attr"`
}
type Element struct {
Attrs
}
func main() {
data := `<element attr1="1" attr2="2"></element>`
v := Element{}
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
fmt.Printf("error: %v", err)
return
}
fmt.Printf("%#v\n", v)
}
按预期打印main.Element{Attrs:main.Attrs{Attr1:1, Attr2:2}}
。
如果为匿名结构成员指定了名称,则v.Attr1
和v.Attr2
不会被解组。
type Element struct {
AttrGroup Attrs
}
在这种情况下,在struct成员上使用的正确标记是什么?
答案 0 :(得分:1)
为什么不这样做呢?除了复杂性之外,我没有看到命名结构购买的东西。
package main
import (
"encoding/xml"
"fmt"
)
type Element struct {
Attr1 int `xml:"attr1,attr"`
Attr2 int `xml:"attr2,attr"`
}
func main() {
data := `<element attr1="1" attr2="2"></element>`
v := Element{}
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
fmt.Printf("error: %v", err)
return
}
fmt.Printf("%#v\n", v)
}
打印
main.Element{Attr1:1, Attr2:2}