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展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
Python 内置函数complex详解
Oct 23 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
详解Python在七牛云平台的应用(一)
Dec 05 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 Python
python3射线法判断点是否在多边形内
Jun 28 Python
解析PyCharm Python运行权限问题
Jan 08 Python
pytorch forward两个参数实例
Jan 17 Python
Python pathlib模块使用方法及实例解析
Oct 05 Python
如何在Python中妥善使用进度条详解
Apr 05 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 array_intersect()函数使用代码
2009/01/14 PHP
处理php自动反斜杠的函数代码
2010/01/05 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
实习销售业务员自我鉴定
2013/09/21 职场文书
班会关于环保演讲稿
2013/12/29 职场文书
小学教师师德承诺书
2014/05/23 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
Vue.Draggable实现交换位置
2022/04/07 Vue.js