2014-03-26 79 views
8

我的XML数据:Golang XML解析

<dictionary version="0.8" revision="403605"> 
    <grammemes> 
     <grammeme parent="">POST</grammeme> 
     <grammeme parent="POST">NOUN</grammeme> 
    </grammemes> 
</dictionary> 

我的代码:

type Dictionary struct { 
    XMLName xml.Name `xml:"dictionary"` 
    Grammemes *Grammemes `xml:"grammemes"` 
} 

type Grammemes struct { 
    Grammemes []*Grammeme `xml:"grammeme"` 
} 

type Grammeme struct { 
    Name string `xml:"grammeme"` 
    Parent string `xml:"parent,attr"` 
} 

我得到Grammeme.Parent属性,但我不明白Grammeme.Name。为什么?

回答

9

如果你想有一个字段来保存当前元素的内容,你可以使用标签xml:",chardata"。您已经标记了结构的方式,它是不是在寻找一个<grammeme>子元素。

所以一组,你可以解码成结构是:

type Dictionary struct { 
    XMLName xml.Name `xml:"dictionary"` 
    Grammemes []Grammeme `xml:"grammemes>grammeme"` 
} 

type Grammeme struct { 
    Name string `xml:",chardata"` 
    Parent string `xml:"parent,attr"` 
} 

你可以在这里测试一下这个例子:http://play.golang.org/p/7lQnQOCh0I