• 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)
  • 相关阅读:
    课堂例子验证
    大道至简第三章读后感
    动手动脑例子验证
    各数相加的思路、流程图、源代码及实现截图
    大道至简第二章读后感
    《大道至简》第一章读后感
    个人冲刺08
    个人冲刺07
    构建之法读后感04
    个人冲刺06
  • 原文地址:https://www.cnblogs.com/bfyang5130/p/12811372.html
Copyright © 2020-2023  润新知