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 相关文章推荐
Python利用ansible分发处理任务
Aug 04 Python
Python实现自动发送邮件功能
Mar 02 Python
详解Python之unittest单元测试代码
Jan 24 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 Python
django admin后台添加导出excel功能示例代码
May 15 Python
python数据化运营的重要意义
Nov 25 Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
Python中的整除和取模实例
Jun 03 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
Nov 28 Python
Python pandas之求和运算和非空值个数统计
Aug 07 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
PHP里的中文变量说明
2011/07/23 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
Python模拟登录12306的方法
2014/12/30 Python
单链表反转python实现代码示例
2018/02/08 Python
详解python3中zipfile模块用法
2018/06/18 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
家长会邀请书
2014/01/25 职场文书
市三好学生主要事迹
2014/01/28 职场文书
军训感想500字
2014/02/20 职场文书
公司成本主管岗位责任制
2014/02/21 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
《山中访友》教学反思
2016/02/24 职场文书