go 语言学习 ---解析xml
实例1
//main
package main import (
"bytes"
"encoding/xml"
"fmt"
"io/ioutil"
)
//获取属性值
func getAttributeValue(attr []xml.Attr, name string) string {
for _, a := range attr {
if a.Name.Local == name {
return a.Value
}
}
return ""
} func main() {
content, err := ioutil.ReadFile("KYTT.plym")
decoder := xml.NewDecoder(bytes.NewBuffer(content)) var t xml.Token
var inItemGroup bool
for t, err = decoder.Token(); err == nil; t, err = decoder.Token() {
switch token := t.(type) {
case xml.StartElement:
name := token.Name.Local
//fmt.Println(name)
if inItemGroup {
if name == "Window" {
//fmt.Println(name)
fmt.Println(getAttributeValue(token.Attr, "Width"))
} } else {
if name == "Playlist" {
inItemGroup = true
}
}
case xml.EndElement:
if inItemGroup {
if token.Name.Local == "Playlist" {
inItemGroup = false
}
}
}
}
}
KYTT.plym内容
<?xml version="1.0"?>
<PlayProgram X="0" Y="0" Width="1152" Height="512">
<Playlist Type="TimeSegment" Name="常规段1" Date="05/10/2019#05/11/2019" Day="True#True#True#True#True#True#True" Time="22:00:00#07:00:00" IsSpeficTimeZone="False" DiffToUTC="00:00:00" ID="0">
<Context>
<BasicPage>
<Page Name="节目1" PlayType="Order" Duration="00:06:00" PlayTimes="1" BackColor="255#0#0#0" BackgroundImage="" ImageLayout="Stretch" BackMusic="" CustomString="">
<Window Name="通用窗口1" X="0" Y="0" Width="1152" Height="512" Tag="Common">
<Item Type="0">
<Media>
<VideoMedia>
<Name>22.mp4</Name>
<PlayDuration>
<string>0#0#45#13#281</string>
</PlayDuration>
<BeginTime>0001-01-01T00:00:00</BeginTime>
<EndTime>0001-01-01T00:00:00</EndTime>
<Times>-1</Times>
<BackColor>
<string>255#0#0#0</string>
</BackColor>
<BackImagePath />
<BackImageLayout>Stretch</BackImageLayout>
<Opacity>1</Opacity>
<ID>103</ID>
<EnableBorderElement>false</EnableBorderElement>
<BorderElement>
<BorderType>6</BorderType>
<IsClockWise>true</IsClockWise>
<Speed>5</Speed>
<BorderWidth>1</BorderWidth>
<BackColor>
<string>255#255#0#0</string>
</BackColor>
<ForeColor>
<string>255#0#128#0</string>
</ForeColor>
<ColorType>0</ColorType>
<BorderDirectionStyle>0</BorderDirectionStyle>
<BorderSurroundedType>0</BorderSurroundedType>
<BorderUnitData>
<string>424d960000000000000036000000280000002000000001000000010018000000000000000000202e0000202e00000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff00ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff</string>
</BorderUnitData>
<BorderLeftUnitData>
<string />
</BorderLeftUnitData>
<BorderRightUnitData>
<string />
</BorderRightUnitData>
<BorderBottomUnitData>
<string />
</BorderBottomUnitData>
</BorderElement>
<Tag />
<FinishedMode>PlayInSpecTime</FinishedMode>
<RotateAngle>None</RotateAngle>
<Path>G:\BaiduNetdiskDownload\22.mp4</Path>
<DispRatioType>Full</DispRatioType>
<TxtElement>
<TextFont>
<string>SimSun#12#Regular#Point#12</string>
</TextFont>
<TextColor>
<string>255#255#0#0</string>
</TextColor>
<IsTextEffect>false</IsTextEffect>
<TextEffectType>0</TextEffectType>
<TextEffectColor>
<string>255#255#255#0</string>
</TextEffectColor>
<TextEffectWidth>2</TextEffectWidth>
<TextAlignment>TopLeft</TextAlignment>
</TxtElement>
<IsShowTextElement>false</IsShowTextElement>
<VolumnPercent>100</VolumnPercent>
<RotateType>None</RotateType>
<IsStartFromSpecificPos>false</IsStartFromSpecificPos>
<StartPosition>
<string>0#0#0#0#0</string>
</StartPosition>
<EndPosition>
<string>0#0#45#13#281</string>
</EndPosition>
</VideoMedia>
</Media>
<AdditionalInfo />
</Item>
</Window>
</Page>
</BasicPage>
<GlobalPage>
<Page />
</GlobalPage>
</Context>
</Playlist>
</PlayProgram>
go 语言学习 ---解析xml的更多相关文章
- 解析XML格式数据
学习解析XML格式的数据前,搭建一个简单的web服务器,在这个服务器上提供xml文本用于练习. 一.搭建Apache服务器 在Apache官网下载编译好的服务器程序,安装.对于Windows来说127 ...
- 四、XML语言学习(1)
XML语言 1.XML是什么?XML是指可扩展标记语言XML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言,很类似HTML.它被设计的宗旨是传输数据,而非 ...
- XML语言学习随笔
XML和HTML都是W3C的定制的标准,XML的诞生本身是为了替代不成熟的HTML,但是因为现实的环境,XML替代HTML并未成功.之后W3C为了代码严谨性的决心,又发布了升级版的标记语言XHTML, ...
- Javaweb学习笔记——使用Jdom解析xml
一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...
- ACEXML解析XML文件——我是如何学习并在短时间内掌握一个库的使用方法的
最近做的C++项目中需要使用xml文件保存一些信息,程序启动时会读取这些信息.最终经过主程的评测,决定使用ACEXML库来读取解析XML文件. 好吧,至于为什么选择ACEXML库,我就不说了.既然选择 ...
- 【Android学习笔记】XmlResourceParser解析xml文件
最近学习Android时,需要用到解析XML文件里的数据,可以用XmlResourceParser来解析xml文件,正好将此记录下来. XmlResourceParser里常用的字段和方法 首先先给出 ...
- [置顶] Android学习系列-Android中解析xml(7)
Android学习系列-Android中解析xml(7) 一,概述 1,一个是DOM,它是生成一个树,有了树以后你搜索.查找都可以做. 2,另一种是基于流的,就是解析器从头到尾解析一遍xml文件. ...
- Java学习之路:详细解释Java解析XML四种方法
XML如今已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 对于XML本身的语法知识与技术细节,须要阅读相关的技术文献,这里面包含的内容有DO ...
- JavaWeb学习日记----XML的解析
XML的解析简介: 在学习JavaScript时,我们用的DOM来解析HEML文档,根据HTML的层级结构在内存中分配一个树形结构,把HTML的标签啊,属性啊和文本之类的都封装成对象. 比如:docu ...
随机推荐
- Codeforces & Atcoder神仙题做题记录
鉴于Codeforces和atcoder上有很多神题,即使发呆了一整节数学课也是肝不出来,所以就记录一下. AGC033B LRUD Game 只要横坐标或者纵坐标超出范围就可以,所以我们只用看其中一 ...
- ICEM-带柱底座
原视频下载地址:https://pan.baidu.com/s/1c2KgCBA 密码: ixk8
- Monkey框架(基础知识篇) - monkey启动与参数介绍
一.monkey启动 直接PC启动:> adb shell monkey [options] <count> shell 端启动:> adb shell >monkey ...
- 20189220 余超《Linux内核原理与分析》第一周作业
实验一 Linux系统简介 通过实验一主要是学习到了Linux 的历史简介,linux与windows之间的区别,主要是免费和收费,软件和支持,安全性,使用习惯,可制定性,应用范畴等.linux具有稳 ...
- 第06组 Alpha冲刺(3/4)
队名:福大帮 组长博客链接:https://www.cnblogs.com/mhq-mhq/p/11899921.html 作业博客 :https://edu.cnblogs.com/campus/f ...
- 第06组 Alpha冲刺(4/6)
队名:拾光组 组长博客链接 作业博客链接 团队项目情况 燃尽图(组内共享) 组长:宋奕 过去两天完成了哪些任务 主要完成了用户联系模块的接口设计 完善后端的信息处理 GitHub签入记录 接下来的计划 ...
- max函数比较字符串类型
关于sql中 max函数比较字符串类型 max只比较首个字符的大小 只要首字母大,则不比较其他位置的字母,若首字母相同,则比较顺序位字母. 今天死在这了 数据库中 step字段类型char分别为 5. ...
- Python之Lambda与三元运算
Python之Lambda与三元运算 Lambda 运算 概念:是指一类无需定义标识符(函数名)的函数或者子程序.特点:匿名函数不使用def定义函数,使用lambda来创建匿名函数1.lambda只是 ...
- ISO/IEC 9899:2011 引言
引言 1.伴随着新的设备以及扩展字符集的引入,可能会将新的特性添加到此国际标准中.在此语言和库条款中的子条款提醒了实现者与程序员可能会与将来所新增特性产生冲突的用法,尽管它们现在本身是合法有效的. 2 ...
- WebGL调试工具分享
学习WebGL,我们需要一些好用的调试工具,下面分享3个常用的调试工具. WebGL Inspector 下载地址:https://github.com/benvanik/WebGL-Inspecto ...