Python实现把xml或xsl转换为html格式

601次阅读  |  发布于5年以前

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

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8