加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

go解析XML

发布时间:2020-12-15 23:39:08 所属栏目:百科 来源:网络整理
导读:XML作为一种数据交换和信息传递的格式已经十分普及。而随着Web服务日益广泛的应用,现在XML在日常的开发工作中也扮演了愈发重要的角色。这一小节, 我们将就Go语言标准包中的XML相关处理的包进行介绍。这个小节不会涉及XML规范相关的内容(如需了解相关知识
XML作为一种数据交换和信息传递的格式已经十分普及。而随着Web服务日益广泛的应用,
现在XML在日常的开发工作中也扮演了愈发重要的角色。这一小节, 我们将就Go语言标
准包中的XML相关处理的包进行介绍。
这个小节不会涉及XML规范相关的内容(如需了解相关知识请参考其他文献),而是介绍
如何用Go语言来编解码XML文件相关的知识。
假如你是一名运维人员,你为你所管理的所有服务器生成了如下内容的xml的配置文件:
<?xml version="1.0" encoding="utf-8"?>

 
 
    
  
   
   
     Shanghai_VPN 
    
   
     127.0.0.1 
    
  
    
  
   
   
     Beijing_VPN 
    
   
     127.0.0.2 
    
  

 
 

// GoTest project main.go
package main

import (
	"encoding/xml"
	"fmt"
	"io/ioutil"
	"os"
)

type Recurlyservers struct {
	XMLName     xml.Name `xml:"servers"`
	Version     string   `xml:"version,attr"`
	Svs         []server `xml:"server"`
	Description string   `xml:",innerxml"`
}
type server struct {
	XMLName    xml.Name `xml:"server"`
	ServerName string   `xml:"serverName"`
	ServerIP   string   `xml:"serverIP"`
}

func main() {
	file,err := os.Open("servers.xml")
	if err != nil {
		fmt.Println("error : &v",err)
		return
	}
	data,err := ioutil.ReadAll(file)
	if err != nil {
		fmt.Println("error &v",err)
		return
	}
	v := Recurlyservers{}
	err = xml.Unmarshal(data,&v)
	if err != nil {
		fmt.Println("error &v",err)
		return
	}
	fmt.Println(v.XMLName)
	fmt.Println(v.Version)
	fmt.Println("--------------------")
	fmt.Println(v.Svs[0].ServerName)
	fmt.Println(v.Svs[0].ServerIP)
	fmt.Println("--------------------")
	fmt.Println(v.Svs[1].ServerName)
	fmt.Println(v.Svs[1].ServerIP)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读