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中常用的各种数据库操作模块和连接实例
May 29 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
Django中间件实现拦截器的方法
Jun 01 Python
实例介绍Python中整型
Feb 11 Python
Python实现操纵控制windows注册表的方法分析
May 24 Python
Python音频操作工具PyAudio上手教程详解
Jun 26 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
Python实现微信好友的数据分析
Dec 16 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
Anaconda详细安装步骤图文教程
Nov 12 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
jquery 选项卡效果 新手代码
2011/07/08 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
js转义字符介绍
2013/11/05 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
python之yield表达式学习
2014/09/02 Python
python使用正则表达式提取网页URL的方法
2015/05/26 Python
python实现单向链表详解
2018/02/08 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
python连接mysql有哪些方法
2020/06/24 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
捷克时尚网上商店:OTTO
2018/03/15 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
合同专员岗位职责
2013/12/18 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
我的小天地教学反思
2014/04/30 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技