def __todom__(self, doc):
return doc.createTextNode(self)
+class raw(node, unicode):
+ def __todom__(self, doc):
+ raise Exception("Cannot convert raw code to DOM objects")
+
class element(node):
def __init__(self, ns, name, ctx):
self.ns = ns
def __call__(self, *children, **attrs):
for child in children:
- self.children.append(self.ctx.nodefrom(child))
+ self.ctx.addchild(self, child)
for k, v in attrs.iteritems():
- self.attrs[unicode(k)] = unicode(v)
+ self.ctx.addattr(self, k, v)
return self
def __todom__(self, doc):
return self.nodeconv[type(ob)](ob)
raise Exception("No node conversion known for %s objects" % str(type(ob)))
+ def addchild(self, node, child):
+ node.children.append(self.nodefrom(child))
+
+ def addattr(self, node, k, v):
+ node.attrs[unicode(k)] = unicode(v)
+
class constructor(object):
def __init__(self, ns, elcls = element, ctx=None):
self._ns = ns