1

假设我有以下 xml:

<main symbol="X">
<blockA main_score="3">
    <a score="0"/>
</blockA>
<blockB>
    <b id="3" name="Mike"/>
</blockB>
</main>

我想定义以下结构(空白标签是我要解决的部分):

type Result struct {
    XMLName xml.Name `xml:"main"`
    Symbol string `xml:"symbol,attr"`
    MainScore int
    Score int
    Id int
    Name string
}

我想得到的是以下结构:

symbol: X
main_score: 3
score: 0
id: 3
name: Mike

那么如何定义进入内部元素(blockA, blockB)并达到其属性值(main_score)和内部元素(score, id, name)的 XML 标记?

我可以通过定义另一个结构并将它们嵌入到父Result结构中来解决这里的问题。但是,不使用嵌入结构并仅在主结构中定义结构标签并让它处理整个元素是否仍然可行?

谢谢。

4

1 回答 1

1

我认为目前无法使用当前版本的包将 XML 解组到您的结构中。

如果它受支持,您需要注释MainScore

MainScore int `xml:"blockA>main_score,attr"`

即从子元素中选择main_score属性。blockA不过,这目前不起作用,如问题 3688中所述。

目前,我认为您需要创建嵌套结构来完全解组您所追求的数据。

于 2013-09-19T03:54:32.107 回答