一:使用github.com/beevik/etree 包解析xml文件、http请求返回值。
1.读取文件
doc := etree.NewDocument()
if err := doc.ReadFromFile("bookstore.xml"); err != nil {
panic(err)
}
2.解析http请求返回信息。
var urls = "https://www.baidu.com"
// 将http rsponse 转化string
func httpresponse(urls string) string {
client := &http.Client{}
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
log.Fatal(err)
}
// 访问有认证的url,需要设置认证参数
req.SetBasicAuth(username, password)
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
bodyText, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
str := string(bodyText)
return str
}
// 使用xpath解析
func getXpath(){
doc := etree.NewDocument()
if err := doc.ReadFromString(str); err != nil {
log.Panic(err)
}
// 过去数据方法和xpath规则一致
for _, t := range doc.FindElements("//book[@category='WEB']/title") {
fmt.Println("Title:", t.Text())
}
}