实例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. SQL基础-汇总统计及GROUP BY

    一.汇总统计 1.聚集函数 COUNT() 计算总数 SUM() 求和 MAX() 最大值 MIN() 最小值 AVG() 平均值 2.聚集函数使用 总共有多少名学生? SELECT COUNT(*) ...

  2. NuxtJS如何利用axios异步请求

    第一种:使用nuxt 提供的 Axios插件 @nuxtjs/axios 1.安装:npm install @nuxtjs/axios -d 2.配置 nuxt.config.js exports d ...

  3. 2016级移动应用开发在线测试12-service

    有趣有内涵的文章第一时间送达! 喝酒I创作I分享 生活中总有些东西值得分享 @醉翁猫咪  1. Service是Android系统中的四大组件之一(Acitivty.Service.ContentPr ...

  4. mysql 根据日期时间查询数据

    mysql> select * from table1; +----------+------------+-----+---------------------+ | name_new | t ...

  5. D3.js的v5版本入门教程(第十章)

    在这一章我们干点有趣的事——让我们上一章绘制的图表动起来,这样岂不是很有意思 为了让图表动起来,我们还是需要以下新的知识点 .attr(xxx) .transition() .attr(xxx),tr ...

  6. Git bash Error: Could not fork child process: There are no available terminals (-1)

    错误信息:Error: Could not fork child process: There are no available terminals (-1) 截图如下: 解决办法: (1)使用cmd ...

  7. CTF 文件上传

    目录 一.客户端校验 1.禁用JS 2.抓包改包 二.服务端校验 1.MIME类型检测 2.后缀名黑名单校验 3.后缀名白名单校验 4.内容头校验 5.竞争上传 6.过滤<?或php 两种校验方 ...

  8. MyBatis中的配置错误creating bean with name 'sqlSessionFactory'

    错误信息如下: 警告: Exception encountered during context initialization - cancelling refresh attempt: org.sp ...

  9. php常用命令

    --------------------------------------------------------------- 重启phpservice php-fpm restart ------- ...

  10. mariadb使用with子句重写SQL性能提升5倍

    几个月前,我们有个产品的开发反馈了个问题,说有个组织结构的查询很慢,几千行的复杂关联需要1秒钟,表示太慢了,原语句如下: SELECT org.org_id, org.dimension, org.o ...