Arxius de configuració XML

Quan desenvolupes una aplicació, de vegades necessites poder extraure certes variables del codi per tal que siguin més senzilles de modificar de cara a personalitzar l’aplicació per a un lloc concret, unes preferències de l’usuari determinades, etc.

Per fer aquesta feina sempre s’han fet servir arxius de configuració, cosa que fa una mandra increïble de programar cada cop o bé de recordar com anava la llibreria que vas crear fa…

Doncs això s’ha acabat, amb menys de 20 línies de codi python i fent servir arxius de configuració en format xml, solucionem aquest problema d’una vegada per totes.

Un arxiu de configuració d’exemple:

<conf>
   <servei tipus="http">
       <port>80</port>
       <reintents>5</reintents>
   </servei>
   <servei tipus="ftp">
       <port>21</port>
       <reintents>3</reintents>
   </servei>
   <general>
       <opcio1>valor</opcio1>
       <opcio2>valor</opcio2>
   </general>
</conf>

I el codi:

#!/usr/bin/env python 

from xml.dom.ext.reader import PyExpat from xml.xpath import Evaluate

class Conf:
   def __init__(self, conf_file = 'conf.xml'):
       f = open(conf_file)
       reader = PyExpat.Reader()
       self.dom = reader.fromStream(f)
       f.close()

   def get(self, path):
       result = Evaluate(path + '/text()', self.dom.documentElement)
       try:
           return result[0].nodeValue
       except IndexError:
           return None

if __name__ == '__main__':
   conf = Conf()

   print conf.get('servei[@tipus="http"]/port')
   print conf.get('servei[@tipus="ftp"]/port')
   print conf.get('general/opcio1')

Arxius de configuracio XML (last edited 2008-01-29 18:11:59 by AlbertManyà)