分享
  1. 首页
  2. 文章

go编程之XML文件解析

xixionedream · · 5207 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

XML俨然已经称为我们程序开中一种数据交换和信息传递不可缺少的一枚角色,当然任何语言对XML的解析支持都不可或缺,今天我们一起学习学习go的xml解析。

需要解析的XML文件:student.xml

xml文件内容:

<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<students version="1">
	<student>
 		 <studentName>xixi</studentName>
 		 <studentId>3100561007</studentId>
	</student>
	<student>
		 <studentName>xiaoq</studentName>
 		 <studentId>3100263101</studentId>
	</student>
</students></span>
xml文件包含学生实体信息,xml版本,xml名字等信息,我们需要做的就是通过go程序去取到这些信息。

在go语言中我们进行xml解析用到的包为 encoding/xml,主要方法为

func Unmarshal(data []byte, v interface{}) error

引入需要使用的go标准库 :

import (
	"encoding/xml"
	"fmt"
	"io/ioutil"
	"os"
)
定义我们XML与内存映射的结构体来接受数据:(注意:结构体描述信息中的字段需要与xml中的一一对应,并且要区分大小写,不然解析的时候会出错)

type Student struct {
	XMLName xml.Name `xml:"student"`
	StudentName string `xml:"studentName"`
	StudentId string `xml:"studentId"`
}
type RecurlyStudents struct {
	XMLName xml.Name `xml:"students"`
	Version string `xml:"version,attr"`
	Stustruct []Student `xml:"student"`
	Description string `xml:",innerxml"`
}
加载xml文件,并读取文件信息到data中:

	<span style="white-space:pre">	</span><pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">  </span>fmt.Println(<span style=" color:#008000;">"------------xml</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">解析-----------"</span>)
file,err:=os.Open("student.xml")
iferr!=nil{
fmt.Println("openxmlfileerror")
return
}
deferfile.Close()
data,err:=ioutil.ReadAll(file)
iferr!=nil{
fmt.Println("readfilestreamerror")
return
}
解析xml文件并输出:

 stus := RecurlyStudents{}
	err = xml.Unmarshal(data, &stus)
	if err != nil {
		fmt.Println("format xml data failed")
		return
	}
	fmt.Println("Description:" + stus.Description)
	fmt.Printf("XMLName:%v\n", stus.XMLName)
	fmt.Println("XMLVersion:" + stus.Version)
	for index, stu := range stus.Stustruct {
		fmt.Printf("the %d student,name:%s\n", index+1, stu.StudentName)
		fmt.Printf("the %d student,id:%s\n", index+1, stu.StudentId)
	}
over






有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:xixionedream

查看原文:go编程之XML文件解析

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
5207 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏