服务器端Go程序对长短链接的处理及运行参数的保存

2020-01-28 11:58:15于海丽


接下来就是解析他们了,目前golang官方还没有解析yaml的库,因此我推荐使用第三方的go-yaml包,
地址如下:  go-yaml  ,go get安装该包后,我们就可以通过他解析文件啦:

//解析文件,取出所有参数 
func GetYamlConfig() map[interface{}]interface{}{ 
 
    data, err := ioutil.ReadFile("config.yaml") 
    //将解析出的参数转为map的形式 
    m := make(map[interface{}]interface{}) 
    if err != nil { 
        LogErr("error: %v", err) 
    } 
    err = yaml.Unmarshal([]byte(data), &m) 
 
    return m 

//根据需求取出对应值 
func GetElement(key string,themap map[interface{}]interface{})string { 
    if value,ok:=themap[key];ok { 
        return value.(string) 
    } 
 
    LogErr("Can't find the *.yaml") 
    return "" 


这里同样给出解析xml配置文件的代码:

func GetXMLConfig() map[string]string { 
 
    var t xml.Token 
    var err error 
 
    Keylst := make([]string,6) 
    Valuelst:=make([]string,6) 
//将解析出的元素填入map中,便于查找 
    map1:=make(map[string]string) 
    content, err := ioutil.ReadFile("config.xml") 
    CheckError(err) 
    decoder := xml.NewDecoder(bytes.NewBuffer(content)) 
 
    i:=0 
    j:=0 
    for t, err = decoder.Token(); err == nil; t, err = decoder.Token() { 
 
        switch token := t.(type) { 
        // 处理元素 
        case xml.StartElement: 
 
            name := token.Name.Local 
            Keylst[i]=string(name) 
            i=i+1 
 
        case xml.CharData: 
            content1 := string([]byte(token)) 
            //Valuelst=append(Valuelst,content1)