<rss>
<channel>
<title>RSS</title>
<item>
<title>23333</title>
<my:size>7.8 MiB</my:size>
</item>
</channel>
</rss>
type RSS struct {
Channel Channel `xml:"channel"`
}
type Channel struct {
Title string `xml:"title"`
Items []Item `xml:"item"`
}
type Item struct {
Title string `xml:"title"`
Size string `xml:"my:size"`
}
func rss(w http.ResponseWriter, r *http.Request) {
var rss RSS
err = xml.Unmarshal([]byte(rss_str), &rss)
if err != nil {
fmt.Printf("解析 XML 失败: %s\n", err)
return
}
jsonData, err := json.MarshalIndent(rss, "", " ")
if err != nil {
fmt.Printf("转换为 JSON 失败: %s\n", err)
return
}
w.Write(jsonData)
}
就这个 my:size
很难办,我无法正确解析,得到的内容为空
目前我是用
rss_str := strings.ReplaceAll(rss_str, "my:", "")
凑活的,能满足我要求,但总感觉不是个事儿。
请问,该怎么解析带命名空间的xml?
谢谢
go代码
输出JSON