Guest User

Untitled

a guest
Jul 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. #!/usr/bin/python
  2. # Created by Christian Blades <christian dot blades at docblades dot com>
  3.  
  4. from xml.etree.cElementTree import Element, ElementTree
  5. from urllib import quote_plus as quote
  6.  
  7. def _getData(line):
  8. name, text = None, None
  9.  
  10. div = line.find(':')
  11. if div == -1:
  12. name = quote(line.strip())
  13. else:
  14. name = quote(line[:div].strip())
  15. text = line[div + 1:].strip()
  16.  
  17. return name, text
  18.  
  19. def parse(theFile):
  20. elStack = []
  21. root = []
  22.  
  23. for line in theFile:
  24.  
  25. start = line.find("+ ")
  26. if (start == -1):
  27. continue
  28. else:
  29. name, text = _getData(line[start + 2:])
  30.  
  31. myEl = Element(name)
  32. myEl.text = text
  33.  
  34. if start == 0:
  35. elStack = [[0, myEl]]
  36. root.append(myEl)
  37. else:
  38. if start > elStack[-1][0]:
  39. elStack[-1][1].append(myEl)
  40. elStack.append([start, myEl])
  41. else:
  42. while(elStack[-1][0] > start):
  43. elStack.pop()
  44.  
  45. elStack.pop()
  46. elStack[-1][1].append(myEl)
  47. elStack.append([start, myEl])
  48.  
  49. rootNode = Element("root")
  50.  
  51. for el in root:
  52. rootNode.append(el)
  53.  
  54. return ElementTree(rootNode)
Add Comment
Please, Sign In to add comment