Разархивировать вложенный документ OPML
Я пытаюсь разобрать простой вложенный документ opml. Проблема возникает, когда я вложил opml и не могу определиться со структурой. Я ставлю код ниже. Пожалуйста, дайте мне знать, как я могу разобрать многоуровневую вложенность Outline
структура.
http://play.golang.org/p/FobiL1JDdb
package main
import (
"encoding/xml"
"fmt"
)
var response = `<opml version='1.0'>
<head>
<title>More Cases</title>
<expansionState>1,6,26</expansionState>
</head>
<body>
<outline text='Testing' _note='indeterminate'>
<outline text='Weekly' _status='indeterminate'>
</outline>
</outline>
</body>
</opml>`
type Opml struct {
XMLName xml.Name
Version string `xml:"version,attr"`
Head Head `xml:"head"`
Body Body `xml:"body"`
}
type Head struct {
Title string `xml:"title"`
ExpansionState string `xml:"expansionState"`
}
type Body struct {
Outline Outline `xml:"outline"`
}
type Outline struct {
Text string `xml:"text,attr"`
Note string `xml:"_note,attr"`
}
func main() {
fmt.Println("UnMrashal XML")
opml := &Opml{}
xml.Unmarshal([]byte(response), opml)
fmt.Println(opml)
}
1 ответ
Решение
Вам нужно использовать указатель
type Outline struct {
Text string `xml:"text,attr"`
Note string `xml:"_note,attr"`
Outline *Outline `xml:"outline"`
}