一尘不染

转到节点N的XML解组属性X

go

我想将特定节点N的属性X的值解组到struct字段。像这样:

var data = `<A id="A_ID">
<B id="B_ID">Something</B>
</A>
`

type A struct {
    Id   string `xml:"id,attr"` // A_ID
    Name string `xml:"B.id,attr"` // B_ID
}

http://play.golang.org/p/U6daYJWVUX

据我能够检查,Go不支持此功能。我是正确的,还是我在这里错过了什么?


阅读 167

收藏
2020-07-02

共1个答案

一尘不染

在您的问题中,您没有提及B。我猜您需要将其属性编组为A.Name?如果是这样-您可以将A结构更改为以下形式:

type A struct {
    Id string `xml:"id,attr"` // A_ID
    Name  struct {
        Id string `xml:"id,attr"` // B_ID
    } `xml:"B"`
}

甚至更好-定义单独的B结构:

type A struct {
    Id string `xml:"id,attr"` // A_ID
    Name  B `xml:"B"`
}

type B struct {
    Id string `xml:"id,attr"` // B_ID
}
2020-07-02