用python把xml和xsl轉換爲html

前些天用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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章