Go 读取和写入xml文件示例

在学习Go语言中,有关于Go处理xml文件的处理.在这里记录一下

在Go语言中使用ioutil库进行文件的处理是特别方便的事情,这里使用Goland进行开发的示例
首先创建工程xml ,如下图所示

在这里插入图片描述
在main.go中对A.xml 的内容进行读取 A.xml 的内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<peoples version="0.9">
    <people id="123">
        <name> ZH </name>
        <address>深圳宝安</address>
    </people>
    <people id="124">
        <name> YQ </name>
        <address>深圳福田</address>
    </people>
</peoples>

解析A.xml的代码如下:

package main

import (
	"encoding/xml"
	"fmt"
	"io/ioutil"
)

type Peoples struct {
	XMLName xml.Name `xml:"peoples"`
	Version string `xml:"version,attr"` //xml的属性 attr
	Peos []People `xml:"people"`


}

type People struct {
	XMLName xml.Name `xml:"people"`
	ID    	int 		 `xml:"id,attr"`//xml的属性 attr
	Name  	string	 	 `xml:"name"`
	Address string		 `xml:"address"`
	sex     string        `xml:"sex"`
}


func main() {
	peo := new(People)
	b,err  := ioutil.ReadFile("./A.xml")

	fmt.Println(string(b))
	fmt.Println("111: ",err)
	err = xml.Unmarshal(b,peo)//使用Ummarshal 对b内容进行解析
	
	fmt.Println("222",err)
	fmt.Println(peo)

	

网B.xml 中写入数据

b := Peoples{Version:"0.9"}
var text = `<Peoples></Peoples>`
peo := People{ID:125,Name:"LHH",Address:"ccsu",sex:"male"}
b.Peos = append(b.Peos,peo)
xml.Unmarshal([]byte(text),b)

wrb ,_:= xml.MarshalIndent(b,"","	")
wrb = append([]byte(xml.Header),wrb...)

ioutil.WriteFile("./B.xml",wrb,0666)

最后写入成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值