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 相关文章推荐
wxPython窗口的继承机制实例分析
Sep 28 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
python随机生成指定长度密码的方法
Apr 04 Python
python Django批量导入数据
Mar 25 Python
python先序遍历二叉树问题
Nov 10 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
python使用tornado实现简单爬虫
Jul 28 Python
Python函数参数操作详解
Aug 03 Python
python flask安装和命令详解
Apr 02 Python
numpy linalg模块的具体使用方法
May 26 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
Python借助with语句实现代码段只执行有限次
Mar 23 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实现将GB编码转换为UTF8
2006/11/25 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
python爬取指定微信公众号文章
2018/12/20 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
关于Python解包知识点总结
2020/05/05 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
python中round函数保留两位小数的方法
2020/12/04 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
高中班长自我鉴定
2013/12/20 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
员工工作及收入证明
2014/10/28 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
四则混合运算教学反思
2016/02/23 职场文书