Python实现把xml或xsl转换为html格式


Posted in Python onApril 08, 2015

前些天用python处理xml的转换的一个小程序,用来把xml,xsl转换成html。

用的libxml2,所以还要先安装了libxml2模块才能使用。

# -*- coding: mbcs -*- 
#!/usr/bin/python

import libxml2, libxslt


class compoundXML: 
  def __init__(self): 
    self._result = None 
    self._xsl = None 
    self._xml = None 
    
    
  def do(self, xml_file_name, xsl_file_name):    
    self._xml = libxml2.parseFile(xml_file_name) 
    if self._xml == None: 
      return 0
    styledoc = libxml2.parseFile(xsl_file_name) 
    if styledoc == None: 
      return 0
    self._xsl = libxslt.parseStylesheetDoc(styledoc) 
    if self._xsl == None: 
      return 0

    self._result = self._xsl.applyStylesheet(self._xml, None)        
    
  def get_xml_doc(self): 
    return self._result      
    
    
  def get_translated(self): 
    return self._result.serialize('UTF-8')    
  
  def save_translated(self, file_name): 
    self._xsl.saveResultToFilename(file_name, self._result, 0) 
    
  def release(self): 
    ''' 
    this function must be called in the end. 
    ''' 
    self._xsl.freeStylesheet() 
    self._xml.freeDoc() 
    self._result.freeDoc() 
    self._xsl = None 
    self._xml = None 
    self._result = None 
    
    

if __name__ == '__main__': 
  test = compoundXML() 
  test.do('test/testxmlutil.xml', 'test/testxmlutil.xsl') 
  print test.get_translated() 
  test.save_translated('test/testxmlutil.htm') 
  test.release()
Python 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
python抓取最新博客内容并生成Rss
May 17 Python
Python多线程爬虫简单示例
Mar 04 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
python实现浪漫的烟花秀
Jan 30 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
python dumps和loads区别详解
Feb 04 Python
python函数map()和partial()的知识点总结
May 26 Python
Python Map 函数的使用
Aug 28 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 Python
Python正则表达式匹配HTML页面编码
Apr 08 #Python
在Python中关于中文编码问题的处理建议
Apr 08 #Python
Python脚本实现格式化css文件
Apr 08 #Python
Python实现获取操作系统版本信息方法
Apr 08 #Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 #Python
python模块之StringIO使用示例
Apr 08 #Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 #Python
You might like
PHP4在Windows2000下的安装
2006/10/09 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
js实现图片轮播效果
2015/12/19 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
django rest framework 自定义返回方式
2020/07/12 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
优秀求职自荐信怎样写
2013/12/18 职场文书
大学生涯自我鉴定
2014/01/16 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers