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求素数示例分享
Feb 16 Python
小结Python用fork来创建子进程注意事项
Jul 03 Python
Python字符串和文件操作常用函数分析
Apr 08 Python
Python 描述符(Descriptor)入门
Nov 20 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
获取python文件扩展名和文件名方法
Feb 02 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
pandas计数 value_counts()的使用
Jun 24 Python
python全栈要学什么 python全栈学习路线
Jun 28 Python
深入了解Django View(视图系统)
Jul 23 Python
python用tkinter实现一个gui的翻译工具
Oct 26 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
域名和cookie问题(域名后缀)
2012/10/10 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
用ADODB.Stream转换
2007/01/22 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
用Python编写web API的教程
2015/04/30 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
python实现的系统实用log类实例
2015/06/30 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
Python实现数字的格式化输出
2020/08/01 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
销售心得体会
2014/01/02 职场文书
网络技术专业推荐信
2014/02/20 职场文书
服装店营销方案
2014/03/10 职场文书
《雪儿》教学反思
2014/04/17 职场文书
物业保安岗位职责
2014/07/02 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL