go随聊-xml读取

XML的读取

假设本地xml文件config.xml

<?xml version="1.0" encoding="UTF-8"?>
<Message Version="1.0">
  <Item key="Channel" value="gin"/>
  <Item key="Filter" value="system,statistics,metric,facerecog,facesnap"/>
  <Item key="LogLevel" value="trace" desc="日志等级off,trace,debug,info,error,all"/>
  <Item key="ChannelHttpPort" value="9100" desc="http服务端口"/>
  <Item key="ConfigSSDB" value="192.168.10.25:18888" desc="ssdb地址"/>
  <Item key="ConfigRedis" value="192.168.10.25:6379" desc="redis地址"/>
</Message>

定义结构

type Item struct {
	XMLName xml.Name `xml:"Item"`
	Key     string   `xml:"key,attr"`
	Value   string   `xml:"value,attr"`
	Desc 	string	 `xml:"desc,attr"`
}

type Message struct {
	XMLName xml.Name `xml:"Message"`
	Svs     []Item   `xml:"Item"`
}

读取xml

var configItem map[string]string = make(map[string]string)
func loadXml(file string) {
	content, err := ioutil.ReadFile(file)
	if err != nil {
		return
	}

	var result Message
	err = xml.Unmarshal(content, &result)
	if err != nil {
		return
	}

	//将key-value值保持到map中
	configItem = make(map[string]string)
	for i := 0; i < len(result.Svs); i++ {
		configItem[result.Svs[i].Key] = result.Svs[i].Value
	}
}

例子

loadXml("G:\\xqplatform\\src\\xqplatform\\system.xml")
for k,v:=range configItem {
    fmt.Println("key[",k,"] value[",v,"]")
}
------------------------------------------------------
key[ ConfigSSDB ] value[ 192.168.10.25:18888 ]
key[ ConfigRedis ] value[ 192.168.10.25:6379 ]
key[ Channel ] value[ gin ]
key[ Filter ] value[ system,statistics,metric,facerecog,facesnap ]
key[ LogLevel ] value[ trace ]
key[ ChannelHttpPort ] value[ 9100 ]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值