golang對XML文檔進行解析


先在這里打個地址,后面用到遇到什么問題再補上。

https://github.com/beevik/etree

       //生成xml
	productXml:=etree.NewDocument()
	productXml.CreateProcInst("xml", `version="1.0" encoding="UTF-8"`)
	request:=productXml.CreateElement("Request")
	for i:=0; i<2;i++  {
		product:=request.CreateElement("Product")
		sk:=product.CreateElement("SellerSku")
		sk.CreateText("4105382173aaee4")
		product.CreateElement("ParentSku")
	}
	os.Remove("productXml.xml")
	productXml.WriteToFile("productXml.xml")

  

<?xml version="1.0" encoding="UTF-8"?>
<Request>
    <Product>
        <SellerSku>4105382173aaee4</SellerSku>
        <ParentSku/>
    </Product>
    <Product>
        <SellerSku>4105382173aaee4</SellerSku>
        <ParentSku/>
    </Product>
</Request>

 

有時要生成CDATA類型,那么直接用下面的代碼

element=product.CreateElement("Description")
element.CreateCData(item.Desc)

  

在上面是將文件寫到文件,有時需要將內容再請求第三方服務器,那么接上下面的代碼

https://github.com/imroc/req

stringXml,err:=productXml.WriteToString()
	if err!=nil{
		return err
	}
apiUrl:=s.buildPostRequest("ProductCreate")
	r, err := req.Post(apiUrl, req.BodyXML(stringXml))
	if err != nil {
		utils.InnerLog.Errorln(err)
		return err
	}
	responseDoc := etree.NewDocument()
	if _,err := responseDoc.ReadFrom(r.Response().Body); err != nil {
		return err
	}
	utils.InnerLog.Errorln(responseDoc)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM