def parse_xml(cls, node, runtime, keys, id_generator): """ Override default serialization to handle <solution /> elements """ block = runtime.construct_xblock_from_class(cls, keys) for child in node: if child.tag == "solution": # convert child elements of <solution> into HTML for display block.solution = ''.join(etree.tostring(subchild) for subchild in child) # Attributes become fields. # Note that a solution attribute here will override any solution XML element for name, value in node.items(): # lxml has no iteritems cls._set_field_if_present(block, name, value, {}) return block