~roeldeconinck/mnemosyne-proj/SMImporter

« back to all changes in this revision

Viewing changes to mnemosyne/mnemosyne/libmnemosyne/file_formats/XMLThings.py

  • Committer: Roel De Coninck
  • Date: 2012-02-07 22:08:53 UTC
  • Revision ID: roeldeconinck@gmail.com-20120207220853-ubxs4e2wulr4pjjl
Trying to keep tags from categories. WIP...

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
 
8
8
import xml.etree.cElementTree as ElementTree
9
9
from xml.etree import ElementTree as OldElementTree
 
10
import copy
10
11
 
11
12
tree=ElementTree.parse(r'C:\Workspace\Mnemosyne\trunk\import\mnemosyne\tests\files\VeryShort.xml')
12
13
#tree=ElementTree.parse(r'C:\Workspace\Mnemosyne\trunk\import\mnemosyne\tests\files\Shortestt.xml')
28
29
        print 'The items are', el.items()
29
30
    print '\n'     
30
31
 
31
 
def split(el, topics=[], items=[]):
 
32
def split(el, topics=[], items=[], cat=[]):
32
33
    """Split an element in a list with topics and a list with items"""
33
34
    
 
35
    # we make a copy of the current tags to use them in the iterative calls
 
36
    topics=topics
 
37
    items=items
34
38
    if el.findtext('Type') == 'Topic':
35
39
        # Element is a Topic
36
40
        topics.append(el)
 
41
        # Keep the category as a tag
 
42
        cat.append(el.findtext('Title'))
 
43
        cat_prev = copy.copy(cat)
37
44
        # check for all subelements
38
45
        for e in list(el):
39
 
            split(e, topics, items)
 
46
            split(e, topics, items, cat_prev)
40
47
            
41
48
    elif el.findtext('Type') == 'Item':
42
 
        items.append(el)
 
49
        items.append({'element':el, 'categories':cat})
43
50
     
44
51
    # no else condition required: the loop will continue 
45
52
 
51
58
    show_element(e)
52
59
    
53
60
s=tree.find('SuperMemoElement')
54
 
split(s)
 
61
t,i = split(s, [], [], [])
55
62