go解析XML

前端之家收集整理的这篇文章主要介绍了go解析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)
}
原文链接:https://www.f2er.com/xml/300212.html

猜你在找的XML相关文章