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抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
利用Python如何生成hash值示例详解
Dec 20 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
python实现在函数中修改变量值的方法
Jul 16 Python
Django 重写用户模型的实现
Jul 29 Python
Django中提供的6种缓存方式详解
Aug 05 Python
python协程gevent案例 爬取斗鱼图片过程解析
Aug 27 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
解决keras使用cov1D函数的输入问题
Jun 29 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使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
对angular4子路由&辅助路由详解
2018/10/09 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
Python 如何实现访问者模式
2020/07/28 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
汉语言文学毕业生求职信
2013/10/01 职场文书
英语感恩演讲稿
2014/01/14 职场文书
法律系毕业生求职信
2014/05/28 职场文书
安全生产月宣传标语
2014/10/06 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
深入理解python协程
2021/06/15 Python
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers