zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    nyoj 16 矩形嵌套
    nyoj 44 子串和
    nyoj 448 寻找最大数
    nyoj 14 会场安排问题
    hdoj 1008 Elevator
    bzoj1588
    bzoj3224
    bzoj1503
    bzoj1834
    bzoj1066
  • 原文地址:https://www.cnblogs.com/bfyang5130/p/12811372.html
Copyright © 2011-2022 走看看