使用go語言解析xml

2021-09-08 12:59:56 字數 2325 閱讀 4909

作業系統: centos 6.9_x64

go語言版本: 1.8.3

現有乙個自動報障程式,如果服務出錯會自動給指定人傳送郵件,配置檔案內容如下(default.xml):

<?

xml version="1.0" encoding="utf-8"

?>

<

config

>

<

smtpserver

>smtp.163.com

smtpserver

>

<

smtpport

>25

smtpport

>

<

sender

>[email protected]

sender

>

<

senderpasswd

>123456

senderpasswd

>

<

receivers

flag

="true"

>

<

user

>[email protected]

user

>

<

user

>[email protected]

user

>

receivers

>

config

>

該配置以config為root標籤,有xml text部分(比如smtpserver標籤)、巢狀xml(receivers標籤)、有xml attribute部分(receivers標籤的flag)、類似陣列的多行配置(user標籤), 資料型別有字串和數字兩種型別。

package main

import (

"encoding/xml""

fmt"

"io/ioutil""

os")type sconfig

struct

type sreceivers

struct

func main()

defer file.close()

data, err :=ioutil.readall(file)

if err !=nil

v :=sconfig{}

err = xml.unmarshal(data, &v)

if err !=nil

fmt.println(v)

fmt.println(

"smtpserver :

",v.smtpserver)

fmt.println(

"smtpport :

",v.smtpport)

fmt.println(

"sender :

",v.sender)

fmt.println(

"senderpasswd :

",v.senderpasswd)

fmt.println(

"receivers.flag :

",v.receivers.flag)

for i,element :=range v.receivers.user

}

執行效果:

[root@local t1]# ls

default.xml xmlcnftest1.go

[root@local t1]# go run xmlcnftest1.go

smtp.

163.com 25 [email protected] 123456 }

smtpserver : smtp.

163.com

smtpport :

25sender : user@

163.com

senderpasswd :

123456

receivers.flag :

true

[email protected]

[email protected]

[root@local t1]#

如果需要直接從字串解析xml配置,可將如下語句中的data替換即可:

err = xml.unmarshal(data, &v)

比如:

err = xml.unmarshal(byte(configcontent), &v) //

configcontent為xml字串

好,就這些了,希望對你有幫助。

使用go解析xml.rst

歡迎補充 

go基礎 xml解析

一 簡介 xml是一種進行資料交換和資訊傳遞的一種格式,在web後端開發使用非常普遍,下面介紹go語言解析xml的方法。二 1.將xml解析為物件 grace r.emlinfullname example inc.company where home gre example.comaddr ema...

Go 語言 XML處理

xml 應用於 web 開發的許多方面,常用於簡化資料的儲存和共享。什麼是 xml?看如下的 xml 示例 shanghai vpn 127.0.0.1 beijing vpn 127.0.0.2 解析 xml 用到了 go 的encoding xml包,可用該包的unmarshal函式來達到目的 ...

c語言解析xml

根據導師的要求,要用c語言解析乙個xml檔案,用於對公升級檔案進行合法性判斷,進而對軟體進行公升級。看了一些源 發現他們主要使用樹型結構來實現對xml 的解析,由於能力有限吧,感覺很麻煩,可能占用記憶體也會很大,所以我苦苦思索了好久,決定使用遞迴的方法解析xml檔案,每當解析出相應的數值時,可以立即...