我想提取所有loc
元素值,但我得到一个空数组
我的代码:
package main
import (
"fmt"
"encoding/xml"
)
type Query struct {
XMLName xml.Name `xml:"urlset"`
locs []Loc `xml:"url>loc"`
}
type Loc struct {
loc string
}
var data = []byte(`<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.konga.com/mobile-recharge</loc>
<lastmod>2015-04-14</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://www.konga.com/beauty-health-personal-care</loc>
<lastmod>2015-04-14</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</urlset>`)
func main() {
var q Query
xml.Unmarshal(data, &q)
fmt.Println(q.locs)
}
答案 0 :(得分:2)
它只解组已导出的Caps字段。 Loc
也不应该是一个结构,但可以直接成为一个字符串。
package main
import (
"encoding/xml"
"fmt"
)
type Query struct {
XMLName xml.Name `xml:"urlset"`
Locs []Loc `xml:"url>loc"`
}
type Loc string
var data = []byte(`<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.konga.com/mobile-recharge</loc>
<lastmod>2015-04-14</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://www.konga.com/beauty-health-personal-care</loc>
<lastmod>2015-04-14</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</urlset>`)
func main() {
var q Query
xml.Unmarshal(data, &q)
fmt.Println(q.Locs)
}