go xml 解析
来源:互联网 发布:河北经济直播软件 编辑:程序博客网 时间:2024/05/22 19:22
<?xml version="1.0" encoding="utf-8"?>
<DAS LocalPort="8250">
<DataSource>
<Device ED="UNIT1" LN="10.10.0.5:102" ET="" PL="PointsList.csv" />
</DataSource>
<DataDest LN="Host=192.168.108.22:8200;User=test;Pwd=123456" ET=""/>
</DAS>
------------------------------------------------------------------------------
package mainimport ("encoding/xml""fmt""io/ioutil""os")type Das struct {XMLName xml.Name `xml:"DAS"`LocalPort string `xml:"LocalPort,attr"`DataSource []DS `xml:"DataSource"`DataDest []DD `xml:DataDest`}type DS struct {Device []DV `xml:"Device"`}type DV struct {ED string `xml:"ED,attr"`LN string `xml:"LN,attr"`ET string `xml:"ET,attr"`PL string `xml:"PL,attr"`}type DD struct {LN string `xml:"LN,attr"`ET string `xml:"ET,attr"`}func Parser(FileName string) {file, err := os.Open(FileName)if err != nil {fmt.Println(err)
}
defer file.Close()data, err := ioutil.ReadAll(file)if err != nil {fmt.Println(err)
}
root := Das{}err = xml.Unmarshal(data, &root)if err != nil {fmt.Println(err)
}
fmt.Println(root.XMLName)
fmt.Println("LocalPort:", root.LocalPort)for _, ds := range root.DataSource {for _, dv := range ds.Device {fmt.Println("ED:", dv.ED)fmt.Println("LN:", dv.LN)fmt.Println("ET:", dv.ET)fmt.Println("PL:", dv.PL)}
}
for _, dd := range root.DataDest {fmt.Println("ET:", dd.ET)fmt.Println("LN:", dd.LN)}
}func MakeXml(XmlFile string) {f, err := os.Create(XmlFile)if err != nil {fmt.Println(err)
return}
defer f.Close()das := Das{}das.LocalPort = "8200"ds := DS{}dv := DV{}dv.ED = "Data source"dv.LN = "127.0.0.1:8100"dv.ET = "NONE"ds.Device = append(ds.Device, dv)das.DataSource = append(das.DataSource, ds)dd := DD{}dd.LN = "127.0.0.1:8200"dd.ET = "test"das.DataDest = append(das.DataDest, dd)f.Write([]byte(xml.Header))output, err := xml.MarshalIndent(das, " ", " ")f.Write(output)
return}func main() {Parser("das.xml")MakeXml("NewDas.xml")}------------------------------------------------------------------------------
{ DAS}
LocalPort: 8250
ED: UNIT1
LN: 10.10.0.5:102
ET:
PL: PointsList.csv
ET:
LN: Host=192.168.108.22:8200;User=test;Pwd=123456
------------------------------------------------------------------------------NewDas.xml<?xml version="1.0" encoding="UTF-8"?><DAS LocalPort="8200"><DataSource><Device ED="Data source" LN="127.0.0.1:8100" ET="NONE" PL=""></Device></DataSource><DataDest LN="127.0.0.1:8200" ET="test"></DataDest></DAS>
0 0
- go解析XML
- Go 解析XML
- go语言解析xml
- go xml 解析
- go 用结构解析XML
- [GO]Golang 解析xml 生成json 传到前台
- go 解析XML 设置缺省att的默认值
- go语言xml文件的解析及生成代码示例
- Go操作XML
- Go-XPath解析
- Go 解析JSON
- Go语言解析JSON
- Go-ini文件解析
- Go语言解析YAML
- KCP-GO源码解析
- Go语言解析Html
- Go语言解析json字符串
- go语言解析json库
- 微软实习生电话面试
- 搜索引擎---coreseek 模糊查询
- shutdown -s -t XXX
- 计算cpu是大字节序还是小字节序
- UITextView 隐藏键盘 为何不起效
- go xml 解析
- Redis-sentinel实现redis HA 过程
- 面试经验1
- JAVA连接数据库的两种方式,JDBC和JNDI
- 入职以来总结
- 习题二——C语言笔试题
- TOMCAT部署项目有3种方法
- 三种字符串拼接方式比较
- 使用CSS居中表(四)