from django.conf import settings from xml.dom.minidom import parse, parseString ''' This file will eventually form an abstraction layer between the course XML file and the rest of the system. ''' def toc_from_xml(active_chapter,active_section): dom=parse(settings.DATA_DIR+'course.xml') course = dom.getElementsByTagName('course')[0] name=course.getAttribute("name") chapters = course.getElementsByTagName('chapter') ch=list() for c in chapters: sections=list() for s in c.getElementsByTagName('section'): sections.append({'name':s.getAttribute("name"), 'time':s.getAttribute("time"), 'format':s.getAttribute("format"), 'due':s.getAttribute("due"), 'active':(c.getAttribute("name")==active_chapter and \ s.getAttribute("name")==active_section)}) ch.append({'name':c.getAttribute("name"), 'sections':sections, 'active':(c.getAttribute("name")==active_chapter)}) return ch def dom_select(dom, element_type, element_name): if dom==None: return None elements=dom.getElementsByTagName(element_type) for e in elements: if e.getAttribute("name")==element_name: return e return None