实例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的更多相关文章

  1. 解析XML格式数据

    学习解析XML格式的数据前,搭建一个简单的web服务器,在这个服务器上提供xml文本用于练习. 一.搭建Apache服务器 在Apache官网下载编译好的服务器程序,安装.对于Windows来说127 ...

  2. 四、XML语言学习(1)

    XML语言 1.XML是什么?XML是指可扩展标记语言XML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言,很类似HTML.它被设计的宗旨是传输数据,而非 ...

  3. XML语言学习随笔

    XML和HTML都是W3C的定制的标准,XML的诞生本身是为了替代不成熟的HTML,但是因为现实的环境,XML替代HTML并未成功.之后W3C为了代码严谨性的决心,又发布了升级版的标记语言XHTML, ...

  4. Javaweb学习笔记——使用Jdom解析xml

    一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...

  5. ACEXML解析XML文件——我是如何学习并在短时间内掌握一个库的使用方法的

    最近做的C++项目中需要使用xml文件保存一些信息,程序启动时会读取这些信息.最终经过主程的评测,决定使用ACEXML库来读取解析XML文件. 好吧,至于为什么选择ACEXML库,我就不说了.既然选择 ...

  6. 【Android学习笔记】XmlResourceParser解析xml文件

    最近学习Android时,需要用到解析XML文件里的数据,可以用XmlResourceParser来解析xml文件,正好将此记录下来. XmlResourceParser里常用的字段和方法 首先先给出 ...

  7. [置顶] Android学习系列-Android中解析xml(7)

    Android学习系列-Android中解析xml(7) 一,概述 1,一个是DOM,它是生成一个树,有了树以后你搜索.查找都可以做. 2,另一种是基于流的,就是解析器从头到尾解析一遍xml文件.   ...

  8. Java学习之路:详细解释Java解析XML四种方法

    XML如今已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 对于XML本身的语法知识与技术细节,须要阅读相关的技术文献,这里面包含的内容有DO ...

  9. JavaWeb学习日记----XML的解析

    XML的解析简介: 在学习JavaScript时,我们用的DOM来解析HEML文档,根据HTML的层级结构在内存中分配一个树形结构,把HTML的标签啊,属性啊和文本之类的都封装成对象. 比如:docu ...

随机推荐

  1. 前端微信小程序资讯类仿今日头条微信小程序

    需求描述及交互分析设计思路和相关知识点新闻频道滑动效果设计首页新闻内容设计首页新闻详情页设计我的界面列表式导航设计系统设置二级界面设计 设计思路(1)设计底部标签导航,准备好底部标签导航的图标和建立相 ...

  2. 算法:贪心、回溯(su)、分治、动态规划,思想简要

    贪心算法: 只做出当前看来最好的选择,而不从整体考虑最优,他所作出的是局部最优解.使用该算法的前提是必须具备无后效性,即某个状态以前的选择不会影响以后的状态的选择,只与当前状态有关. 回溯算法: 本质 ...

  3. 深度clone和浅clone

    首先等你有空的时候可以看这篇,要用可以看我这篇 https://www.cnblogs.com/echolun/p/7889848.html 1.有一点需要明确的是 深拷贝只是针对引用数据类型来说的, ...

  4. Cloudera-Manager(一) —— 基本概念及使用

    概念 Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署利器,这款利器具有集群自动化安装.中心化管理.集群监控.报警等功能,极大的提高集群管理的效率. AP ...

  5. 刷题记录:Shrine

    目录 刷题记录:Shrine 刷题记录:Shrine 题目复现链接:https://buuoj.cn/challenges 参考链接:Shrine 解此题总结一下flask的SSTI:CTF SSTI ...

  6. Goroutine调度器

    前言 并发(并行)一致都是编程语言的核心主题,不同于其他语言,例如C/C++语言用户序自行借助pthread创建线程,Golang天然就给出了并发解决方案:goroutine. Goroutine 写 ...

  7. MySQL事务部分回滚-回滚到指定保存点

    我们可以在mysql事务处理过程中定义保存点(SAVEPOINT),然后回滚到指定的保存点前的状态. 定义保存点,以及回滚到指定保存点前状态的语法如下. 定义保存点---SAVEPOINT 保存点名; ...

  8. 单点登录(SSO)工作原理

    单点登录(SSO)工作原理 一.单点登录的介绍 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次 ...

  9. 004 vue组件

    一:创建组件 1.第一种创建方式 主要有Vue.extend,Vue.component. 注释掉的代码是一步一步的推断,后面的代码是简化的代码. <!DOCTYPE html> < ...

  10. [LeetCode] 685. Redundant Connection II 冗余的连接之 II

    In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) f ...