Skip to content

Instantly share code, notes, and snippets.

@ksc91u
Last active January 17, 2018 17:01
Show Gist options
  • Save ksc91u/24337bfae3cd488a15705ee8dd6240b1 to your computer and use it in GitHub Desktop.
Save ksc91u/24337bfae3cd488a15705ee8dd6240b1 to your computer and use it in GitHub Desktop.
parse epg xml
#!/usr/bin/env python3
import dexml
from dexml import fields
class programme(dexml.Model):
class meta:
tagname = "programme"
channel = fields.String()
start = fields.String()
stop = fields.String()
title = fields.String(tagname='title')
subtitle = fields.String(tagname='sub-title')
class tv(dexml.Model):
class meta:
tagname = "tv"
programs = fields.List(programme, tagname="programme")
xml_list_pts = """
<tv generator-info-name="dvb-epg-gen">
<programme channel="202.dvb.guide" start="20171214170000 +0800" stop="20171214173000 +0800">
<title lang="zh">公視手語新聞 (普)</title>
<sub-title lang="zh">第 245 集^M</sub-title>
</programme>
<programme channel="202.dvb.guide" start="20171214173000 +0800" stop="20171214180000 +0800">
<title lang="zh">1【精選】看公視說英語 (普)</title>
<sub-title lang="zh">第 5596 集^M</sub-title>
</programme>
<programme channel="202.dvb.guide" start="20171214173000 +0800" stop="20171214180000 +0800">
<title lang="zh">2【精選】看公視說英語 (普)</title>
<sub-title lang="zh">第 5596 集^M</sub-title>
</programme>
</tv>
"""
xml = """
<programme channel="202.dvb.guide" start="20171214170000 +0800" stop="20171214173000 +0800">
<title lang="zh">公視手語新聞 (普)</title>
<sub-title lang="zh">第 245 集^M</sub-title>
</programme>
"""
t2 = tv.parse(xml_list_pts)
print(t2.programs[1].title)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment