最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
利用python将xml文件解析成html文件的实现方法
时间:2018-01-03 编辑:猪哥 来源:一聚教程网
功能就是题目所述,我的python2.7,装在windows环境,我使用的开发工具是wingide 6.0
1、首先是我设计的简单的一个xml文件,也就是用来解析的源文件
下面是这个文件website.xml内容:
welcome to
this is a moment
My name is likeyou
解释:page就是对应一个html文件,这里有两个page也就是要解析成两个html文件,然后分别是index.html和shouting.html,其中在index.html中通过链接转到shouting.html文件中显示shouting.html文件的内容
2、python代码实现解析(xmltest.py)
#!D:Python27python.exe #-*- coding:utf-8 -*- from xml.sax import parse from xml.sax.handler import ContentHandler class PageCreate(ContentHandler): pagethrough = False def startElement(self, name, attrs): if name == 'page': self.pagethrough = True self.out = open(attrs['name'] + '.html', 'w') self.out.write('nn') self.out.write('%s n' %(attrs['title'])) self.out.write('nn') elif self.pagethrough: self.out.write('<') self.out.write(name) for str,val in attrs.items(): self.out.write(' %s="%s"' %(str, val)) self.out.write('>') def endElement(self, name): if name == 'page': self.out.write('n') self.pagethrough = False self.out.close() if self.pagethrough: self.out.write('<') self.out.write('/' + name) self.out.write('>') def characters(self, content): if self.pagethrough: self.out.write(content) parse('D:\pyproject\file\website.xml', PageCreate())
代码解释:
使用xml.sax解析方法调用parse方法来解析,自己创建了一个解析类,继承了ContentHandler,在里面分别重写了startelement和endelement方法还有charactors方法,startelement方法是当找到xml文件中的开头标签时调用,如、,passthrough变量是为了判断当前是否在page标签里面,true表示在page标签里面,就是属于当前page页面的元素,因为xml.sax是关注标签的,他不会管你是否在当前哪个page里面,然后后面的代码都容易理解,就是添加html的开头标签等,注意,attrs储存的是标签的属性,例如
然后endelement就是当解析到这类的结尾标签的时候调用,添加结尾的标签,如果是文件结尾,那么就是,这时候就把、这些html的结尾标签添加进去,否则,就是page页面里面的元素结尾标签
characters就是将开头标签于结尾标签之间找到的字符串添加进去
最后我们把python代码运行起来之后就可以看到在同一目录下生成了两个html文件,分别是shouting.html和index.html,打开index.html就可以看到一个叫做“shouting”的链接,点过去就打开了shouting.html
相关文章
- Golang ProtoBuf的基本语法详解 10-20
- Python识别MySQL中的冗余索引解析 10-20
- Python+Pygame绘制小球代码展示 10-18
- Python中的数据精度问题介绍 10-18
- Python随机值生成的常用方法介绍 10-18
- python3解压缩.gz文件分析 09-27