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 相关文章推荐
Apache如何部署django项目
May 21 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
Mar 13 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
Python进阶之全面解读高级特性之切片
Feb 19 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
Python unittest生成测试报告过程解析
Sep 08 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面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
写出高质量的PHP程序
2012/02/04 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
javascript处理table表格的代码
2010/12/06 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
python实现excel读写数据
2021/03/02 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
Python列表与元组的异同详解
2019/07/02 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
最新的大学生找工作自我评价
2013/09/29 职场文书
建材业务员岗位职责
2013/12/08 职场文书
开工庆典邀请函范文
2014/01/16 职场文书
护士自我评价范文
2014/01/25 职场文书
感恩节活动方案
2014/01/27 职场文书
2014植树节活动总结
2014/03/11 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
化工实习心得体会
2014/09/09 职场文书
2014年环卫工作总结
2014/11/22 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
Python制作动态字符画的源码
2021/08/04 Python
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL