#/usr/bin/env python
# *-*coding:utf-8 *-*

#pyhton 基础教程22 简单的页面创建程序脚本
from xml.sax.handler import ContentHandler
from xml.sax  import parse

"""
xml.sax文档
#https://docs.python.org/3/library/xml.sax.html
"""
'''

startElement
标签等于page时 设置 passthrough为True 打开一个以标签名字命名的html文件然后写入html头部 标题 
如果标签名不等于page 但在page标签中 写入所有标签名和字符不做任何修改 
当在在page元素中但元素不是page, 使用self.passthrough来判断,
然后重建<尖括号 写入键值 然后闭合
没有标签键值的 写入标签然后 调用characters写入文本 然后调用endElement elif 写入闭合元素

endelement 当name等于page元素时 把passthrough设置为false 写入闭合标签 关闭打开文件
不等于page在page元素中 写入闭合标签
characters 在 passthrough为True时写入文本

'''

"""
xml.sax文档
#https://docs.python.org/3/library/xml.sax.html
"""

class PageMake(ContentHandler):

passthrough = False

def startElement(self, name, attrs):
if name == 'page':
self.passthrough = True
self.out = open(attrs['name'] + '.html', 'w')
self.out.write('<html><head>\n')
self.out.write('<title>%s</title>\n' % attrs['title'])
self.out.write('</head><body>\n')
elif self.passthrough:
self.out.write('<' + name)
for key, val in attrs.items():
self.out.write(' %s="%s"' %(key, val))
self.out.write('>')

def endElement(self, name):
if name == 'page':
self.passthrough = False
self.out.write('\n</body></html>\n')
self.out.close()
elif self.passthrough:
self.out.write('</%s>' % name)

def characters(self, chars):
if self.passthrough: 
self.out.write(chars)

parse('~/py1/website.xml', PageMake())

python 基础教程 xml相关推荐

  1. python基础教程书籍推荐-初学者python入门必看书籍推荐(上)

    随着最近Python的热度上涨,学习的人数也在增多,也因为Python这门语言的简短.易学.语言优美的优点,吸引了很多人来学习它.初学者想要入门,就必须先通过阅读,学习大量的理论知识对Python有一 ...

  2. python程序实例教程基础-python基础教程第三版源代码

    [实例简介] python基础教程第三版源代码 python基础教程第三版源代码 [实例截图] [核心代码] Beginning_Python_version3_SourceCode └── Begi ...

  3. python基本代码教程-Python基础教程(第3版)

    Python基础教程(第3版) 第2版前言 第1版前言 引言 1 快速上手:基础知识 1.1 交互式解释器 1.2 算法是什么 1.3 数和表达式 十六进制.八进制和二进制 1.4 变量 1.5 语句 ...

  4. python基本代码教程-python基础教程第三版源代码

    [实例简介] python基础教程第三版源代码 python基础教程第三版源代码 [实例截图] [核心代码] Beginning_Python_version3_SourceCode └── Begi ...

  5. python基础教程免费下载-Python基础教程(第2版)

    <Python基础教程(第2版)>内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合各个层次的Python开发人员阅读参考.<Python基础教程(第2版)> ...

  6. python基础教程免费下载-Python基础教程第三版PDF电子书免费下载

    <Python基础教程(第3版)>是2018年人民邮电出版社出版的图书,作者是[挪]Magnus Lie Hetland.该书全面介绍了Python的基础知识和基本概念,包括列表.元组.字 ...

  7. Python基础教程(一)

    Python基础教程 一.简介 Python的历史和为什么学习Python这里就不在赘述了.处于工作原因,对Python要进行深入的学习和研究,这里主要针对的就是Python具有的丰富和强大的库. P ...

  8. python基础教程书在线阅读_python基础教程第四版

    第四版 pdf电子书是一部非常实用的python编程语言学习的电子书籍,无论你是刚接触编程或者刚接触Python,通过这部电子书就能让你快速入门,感兴趣的朋友欢迎来绿色资源网免费下载阅读. pytho ...

  9. 《Python基础教程》---值得读几遍的Python入门书

    <Python基础教程>看了三遍.第一遍囫囵吞枣.尝试写代码:第二遍重温,同步看<Python学习手册>.<Python Cookbook>,部分细节(如正则表达式 ...

  10. 论书 | 《Python基础教程(第二版)》怎么样?有用吗?

    大家好我是本文编辑逻辑熊猫! 对我感兴趣的朋友欢迎关注我的个人公众号"逻辑熊猫带你玩Python"~ 由于笔者能力有限,所以呢就说说书吧,或许以后有机会出版社赞助一下就能给大家送个 ...

最新文章

  1. 5 分钟一次理解 Spring IOC !
  2. 龙将加速浏览器_《看门狗:军团》即将开启预载,迅游加速器支持下载和联机加速 18183手机游戏网...
  3. IT项目之旅(一)《宿舍管理系统》设计与实现
  4. 日照油库系统推荐_数据中心很重要,消防防范更重要——七氟丙烷气体灭火系统...
  5. nodejs TCP服务器和客户端通信的socket结构
  6. 【渝粤教育】国家开放大学2019年春季 2110行政法与行政诉讼法 参考试题
  7. 【转】SQL中where, group by, having的用法和区别
  8. 3-5Tensor的属性
  9. 内核并发控制---信号量 (来自网易)
  10. Python对Excel的操作(openpyxl)
  11. easyicon-----一个非常好用的找图标的网站
  12. 数字转字符串的精度问题
  13. Exchange Server 2016体验
  14. 电信运营商IT系统建设概况
  15. 【备忘】【No37】LAMP兄弟连李明老师讲Linux
  16. 掌握bandicam以及KMPlayer
  17. SQL 筛选某一时间大于某一个值的数据及数量
  18. 你的企业如何才能留住员工?
  19. CodeForces - 140C-New Year Snowmen
  20. 【云原生 | 从零开始学Kubernetes】十二、k8spod的生命周期与容器钩子

热门文章

  1. 深度学习非自回归语音合成与自回归语音合成对比
  2. 交通灯控制——汇编小设计
  3. 校园二手交易系统平台
  4. 最新全套码支付源码/QQ+微信+支付宝三网免挂支付系统源码
  5. 威纶通定时循环操作宏_相同功能带定时器的PLC程序怎么简化?
  6. 一张图了解CAS单点登录的流程
  7. Ubuntu16.04 Caffe 安装步骤记录
  8. Jquery 提交表单
  9. 分享8年开发经验,浅谈个人发展经历,明确自己发展方向
  10. 搭建自己的IOT平台——EMQ