|
1 | 1 | from __future__importabsolute_import,division,unicode_literals
|
2 | 2 |
|
3 | 3 |
|
| 4 | +fromcollectionsimportMutableMapping |
4 | 5 | fromxml.domimportminidom,Node
|
5 | 6 | importweakref
|
6 | 7 |
|
|
13 | 14 | defgetDomBuilder(DomImplementation):
|
14 | 15 | Dom=DomImplementation
|
15 | 16 |
|
16 |
| -classAttrList(object): |
| 17 | +classAttrList(MutableMapping): |
17 | 18 | def__init__(self,element):
|
18 | 19 | self.element=element
|
19 | 20 |
|
20 | 21 | def__iter__(self):
|
21 |
| -returnlist(self.element.attributes.items()).__iter__() |
| 22 | +returniter(self.element.attributes.keys()) |
22 | 23 |
|
23 | 24 | def__setitem__(self,name,value):
|
24 |
| -self.element.setAttribute(name,value) |
| 25 | +ifisinstance(name,tuple): |
| 26 | +raiseNotImplementedError |
| 27 | +else: |
| 28 | +attr=self.element.ownerDocument.createAttribute(name) |
| 29 | +attr.value=value |
| 30 | +self.element.attributes[name]=attr |
25 | 31 |
|
26 | 32 | def__len__(self):
|
27 |
| -returnlen(list(self.element.attributes.items())) |
| 33 | +returnlen(self.element.attributes) |
28 | 34 |
|
29 | 35 | defitems(self):
|
30 |
| -return [(item[0],item[1])foritemin |
31 |
| -list(self.element.attributes.items())] |
| 36 | +returnlist(self.element.attributes.items()) |
32 | 37 |
|
33 |
| -defkeys(self): |
34 |
| -returnlist(self.element.attributes.keys()) |
| 38 | +defvalues(self): |
| 39 | +returnlist(self.element.attributes.values()) |
35 | 40 |
|
36 | 41 | def__getitem__(self,name):
|
37 |
| -returnself.element.getAttribute(name) |
| 42 | +ifisinstance(name,tuple): |
| 43 | +raiseNotImplementedError |
| 44 | +else: |
| 45 | +returnself.element.attributes[name].value |
38 | 46 |
|
39 |
| -def__contains__(self,name): |
| 47 | +def__delitem__(self,name): |
40 | 48 | ifisinstance(name,tuple):
|
41 | 49 | raiseNotImplementedError
|
42 | 50 | else:
|
43 |
| -returnself.element.hasAttribute(name) |
| 51 | +delself.element.attributes[name] |
44 | 52 |
|
45 | 53 | classNodeBuilder(_base.Node):
|
46 | 54 | def__init__(self,element):
|
|