Advertisement
expired6978

Untitled

Mar 10th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.12 KB | None | 0 0
  1. import os, sys, string, datetime, shutil, subprocess
  2. from xml.dom import minidom
  3.  
  4. def readTextData(parentNode):
  5.     dataType = ''
  6.     curNode = parentNode.firstChild
  7.     while curNode:
  8.         if curNode.nodeType == curNode.TEXT_NODE:
  9.             dataType += curNode.data
  10.         if curNode.nodeType == curNode.ELEMENT_NODE:
  11.             dataType += curNode.firstChild.data
  12.         curNode = curNode.nextSibling
  13.     return dataType
  14.  
  15. class SKSEMember:
  16.     def __init__(self, type, name):
  17.         self.type = type
  18.         self.name = name
  19.     pass
  20.  
  21. class SKSEClass:
  22.     def __init__(self, classRef, className):
  23.         self.classRef = classRef
  24.         self.className = className
  25.         self.doc = minidom.parse('xml/%s.xml' % self.classRef)
  26.         self.members = self.readMembers()
  27.         self.inheritance = self.readInheritance()
  28.     def readMembers(self):
  29.         members = []
  30.         memberList = self.doc.getElementsByTagName('memberdef')
  31.         for member in memberList:
  32.             if member.getAttribute('kind') == 'variable':
  33.                 varType = member.getElementsByTagName('type')[0]
  34.                 varTypeText = readTextData(varType)
  35.                 varName = member.getElementsByTagName('name')[0]
  36.                 varNameText = varName.firstChild.data
  37.                 thisMember = SKSEMember(varTypeText, varNameText)
  38.                 members.append(thisMember)
  39.         return members
  40.     def readInheritance(self):
  41.         baseRef = self.doc.getElementsByTagName('basecompoundref')
  42.         if baseRef and baseRef[0]:
  43.             return baseRef[0].firstChild.data
  44.         return ''
  45.     pass
  46.  
  47. xmldoc = minidom.parse('xml/index.xml')
  48. itemlist = xmldoc.getElementsByTagName('compound')
  49.  
  50. for item in itemlist:
  51.     refid = item.getAttribute('refid')
  52.     reftype = item.getAttribute('kind')
  53.     if reftype == 'class':
  54.         thisClass = SKSEClass(refid, item.firstChild.firstChild.data)
  55.         print thisClass.className
  56.         if thisClass.inheritance:
  57.             print '\t' + thisClass.inheritance
  58.         for member in thisClass.members:
  59.             print '\t\t' + member.type + ' ' + member.name
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement