-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathREADME
More file actions
79 lines (67 loc) · 1.95 KB
/
README
File metadata and controls
79 lines (67 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
EasyXML is an easy and concise way to generate XML output in Python. It uses a
custom attribute getter so element names can be specified directly in the code:
books = EasyXML('books')
books.book(title='Example A')
books.book.author(name='John Smith', age=57)
books.book.publisher(name='Publisher A')
books.book(title='Example B')
books.book.author(name='Jane Doe', age=30)
books.book.author(name='James Cutter', age=45)
books.book.publisher(name='Publisher B')
print str(books)
The above code produces the following XML:
<books>
<book title="Example A">
<author age="57" name="John Smith"/>
<publisher name="Publisher A"/>
</book>
<book title="Example B">
<author age="30" name="Jane Doe"/>
<author age="45" name="James Cutter"/>
<publisher name="Publisher B"/>
</book>
</books>
You don't actually need to create every parent element, allowing the following
code to work:
root = EasyXML('root')
root.a.b.c()
root.a.b.c()
root.a()
root.a.b.c()
root.a.b.c()
print str(root)
The above code produces the following XML:
<root>
<a>
<b>
<c/>
<c/>
</b>
</a>
<a>
<b>
<c/>
<c/>
</b>
</a>
</root>
Creating an element returns that element, which can then be passed to helper
methods:
def material(primitive, ambient, diffuse):
primitive.ambient(r=ambient[0], g=ambient[1], b=ambient[2])
primitive.diffuse(r=diffuse[0], g=diffuse[1], b=diffuse[2])
root = EasyXML('root')
material(root.primitive(type='sphere'), (64, 0, 0), (192, 0, 0))
material(root.primitive(type='cube'), (0, 64, 0), (0, 192, 0))
print str(root)
The above code produces the following XML:
<root>
<primitive type="sphere">
<ambient b="0" g="0" r="64"/>
<diffuse b="0" g="0" r="192"/>
</primitive>
<primitive type="cube">
<ambient b="0" g="64" r="0"/>
<diffuse b="0" g="192" r="0"/>
</primitive>
</root>