dict2xml.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. """ Dictionary to XML - Library to convert a python dictionary to XML output
  2. Copyleft (C) 2007 Pianfetti Maurizio <boymix81@gmail.com>
  3. Package site : http://boymix81.altervista.org/files/dict2xml.tar.gz
  4. Revision 1.0 2007/12/15 11:57:20 Maurizio
  5. - First stable version
  6. """
  7. __author__ = "Pianfetti Maurizio <boymix81@gmail.com>"
  8. __contributors__ = []
  9. __date__ = "$Date: 2007/12/15 11:57:20 $"
  10. __credits__ = """..."""
  11. __version__ = "$Revision: 1.0.0 $"
  12. class Dict2XML:
  13. #XML output
  14. xml = ""
  15. #Tab level
  16. level = 0
  17. def __init__(self):
  18. self.xml = ""
  19. self.level = 0
  20. #end def
  21. def __del__(self):
  22. pass
  23. #end def
  24. def setXml(self,Xml):
  25. self.xml = Xml
  26. #end if
  27. def setLevel(self,Level):
  28. self.level = Level
  29. #end if
  30. def dict2xml(self,map): # reserved assignment
  31. if (str(type(map)) == "<class 'object_dict.object_dict'>" or str(type(map)) == "<type 'dict'>"):
  32. for key, value in map.items():
  33. if (str(type(value)) == "<class 'object_dict.object_dict'>" or str(type(value)) == "<type 'dict'>"):
  34. if(len(value) > 0):
  35. self.xml += "\t"*self.level
  36. self.xml += "<%s>\n" % (key)
  37. self.level += 1
  38. self.dict2xml(value)
  39. self.level -= 1
  40. self.xml += "\t"*self.level
  41. self.xml += "</%s>\n" % (key)
  42. else:
  43. self.xml += "\t"*(self.level)
  44. self.xml += "<%s></%s>\n" % (key,key)
  45. #end if
  46. else:
  47. self.xml += "\t"*(self.level)
  48. self.xml += "<%s>%s</%s>\n" % (key,value, key)
  49. #end if
  50. else:
  51. self.xml += "\t"*self.level
  52. self.xml += "<%s>%s</%s>\n" % (key,value, key)
  53. #end if
  54. return self.xml
  55. #end def
  56. #end class
  57. def createXML(dict,xml): # reserved assignment
  58. xmlout = Dict2XML()
  59. xmlout.setXml(xml)
  60. return xmlout.dict2xml(dict)
  61. #end def
  62. dict2Xml = createXML
  63. if __name__ == "__main__":
  64. #Define the dict
  65. d={}
  66. d['root'] = {}
  67. d['root']['v1'] = "";
  68. d['root']['v2'] = "hi";
  69. d['root']['v3'] = {};
  70. d['root']['v3']['v31']="hi";
  71. #xml='<?xml version="1.0"?>\n'
  72. xml = ""
  73. print(dict2Xml(d,xml))
  74. #end if