package format import ( "encoding/xml" "os" ) type Outline struct { Outlines []Outline `xml:"outline"` Text string `xml:"text,attr"` Title string `xml:"title,attr"` Type string `xml:"type,attr"` XmlUrl string `xml:"xmlUrl,attr"` } type Body struct { Outline []Outline `xml:"body>outline"` } type OPML struct { XMLName xml.Name `xml:"opml"` Body `xml:"opml>body"` } func OpmlLoad(path string) (OPML, error) { data, err := os.ReadFile(path) if err != nil { panic(err) } opml := OPML{} err = xml.Unmarshal(data, &opml) if err != nil { panic(err) } return opml, err }